append from nao funciona
Moderador: Moderadores
-
joselimatb
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 28 Mai 2007 15:14
- Localização: Tubarao-SC
append from nao funciona
Tenho um arquivo XML e tenho que passar pra DBF mas usando o exemplo abaixo ele so grava o primeiro registro.
a estrutura do DBF é : Linhas com caracter 250
O arquivo Diops.XML esta en axexo.
i nicio dele é ":
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <ans:diopsFinanc xmlns:ans="http://www.ans.gov.br/padroes/diops/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ans.gov.br/padroes/diops/schemas http://www.ans.gov.br/padroes/diops/sch ... xTypes.xsd">
- <ans:identificador>
<ans:registroANS>416827</ans:registroANS>
<ans:razaoSocial>LIMA - PLANO DE SAUDE ODONTOLOGICO LTDA</ans:razaoSocial>
<ans:CNPJ>10289532000144</ans:CNPJ>
<ans:periodo>2010-06-30</ans:periodo>
<ans:transacao>ENVIO_DIOPS_FINANCEIRO</ans:transacao>
<ans:hashPwd>6A35047FD209DE7B3328729390EE16A7</ans:hashPwd>
<ans:apTrans>AR33</ans:apTrans>
</ans:identificador>
- <ans:balancete>
<ans:inicioPeriodo>2010-06-30</ans:inicioPeriodo>
- <ans:ativo>
- <ans:lancamento>
<ans:conta>1</ans:conta>
<ans:saldoAnterior>30000.0</ans:saldoAnterior>
<ans:debitos>2239.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>30000.0</ans:saldoFinal>
<ans:descricao>ATIVO</ans:descricao>
</ans:lancamento>
- <ans:lancamento>
<ans:conta>12</ans:conta>
<ans:saldoAnterior>4576.85</ans:saldoAnterior>
<ans:debitos>0.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>2337.85</ans:saldoFinal>
<ans:descricao>ATIVO CIRCULANTE</ans:descricao>
</ans:lancamento>
- <ans:lancamento>
<ans:conta>121</ans:conta>
<ans:saldoAnterior>4576.85</ans:saldoAnterior>
<ans:debitos>0.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>2337.85</ans:saldoFinal>
<ans:descricao>DISPONIVEL</ans:descricao>
</ans:lancamento>
- <ans:lancamento>
<ans:conta>1211</ans:conta>
<ans:saldoAnterior>4576.85</ans:saldoAnterior>
<ans:debitos>0.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>2337.85</ans:saldoFinal>
<ans:descricao>CAIXA</ans:descricao>
</ans:lancamento>
Alguem pode me ajudar
VAleu
use caddiop new
zap
append from diops.xml delimited with ("<ans")
a estrutura do DBF é : Linhas com caracter 250
O arquivo Diops.XML esta en axexo.
i nicio dele é ":
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <ans:diopsFinanc xmlns:ans="http://www.ans.gov.br/padroes/diops/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ans.gov.br/padroes/diops/schemas http://www.ans.gov.br/padroes/diops/sch ... xTypes.xsd">
- <ans:identificador>
<ans:registroANS>416827</ans:registroANS>
<ans:razaoSocial>LIMA - PLANO DE SAUDE ODONTOLOGICO LTDA</ans:razaoSocial>
<ans:CNPJ>10289532000144</ans:CNPJ>
<ans:periodo>2010-06-30</ans:periodo>
<ans:transacao>ENVIO_DIOPS_FINANCEIRO</ans:transacao>
<ans:hashPwd>6A35047FD209DE7B3328729390EE16A7</ans:hashPwd>
<ans:apTrans>AR33</ans:apTrans>
</ans:identificador>
- <ans:balancete>
<ans:inicioPeriodo>2010-06-30</ans:inicioPeriodo>
- <ans:ativo>
- <ans:lancamento>
<ans:conta>1</ans:conta>
<ans:saldoAnterior>30000.0</ans:saldoAnterior>
<ans:debitos>2239.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>30000.0</ans:saldoFinal>
<ans:descricao>ATIVO</ans:descricao>
</ans:lancamento>
- <ans:lancamento>
<ans:conta>12</ans:conta>
<ans:saldoAnterior>4576.85</ans:saldoAnterior>
<ans:debitos>0.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>2337.85</ans:saldoFinal>
<ans:descricao>ATIVO CIRCULANTE</ans:descricao>
</ans:lancamento>
- <ans:lancamento>
<ans:conta>121</ans:conta>
<ans:saldoAnterior>4576.85</ans:saldoAnterior>
<ans:debitos>0.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>2337.85</ans:saldoFinal>
<ans:descricao>DISPONIVEL</ans:descricao>
</ans:lancamento>
- <ans:lancamento>
<ans:conta>1211</ans:conta>
<ans:saldoAnterior>4576.85</ans:saldoAnterior>
<ans:debitos>0.0</ans:debitos>
<ans:creditos>2239.0</ans:creditos>
<ans:saldoFinal>2337.85</ans:saldoFinal>
<ans:descricao>CAIXA</ans:descricao>
</ans:lancamento>
Alguem pode me ajudar
VAleu
use caddiop new
zap
append from diops.xml delimited with ("<ans")
Re: append from nao funciona
Do jeito que voce especificou acima, entendo que o APPEND utilizado não tera o efeito que deseja, tente assim:
O metodo SDF vai pegar cada linha do arquivo xml e coloca-la em cada linha do seu dbf com 256 carateres.
Ate+
Código: Selecionar todos
use caddiop new
zap
append from diops.xml SDF
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
-
joselimatb
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 28 Mai 2007 15:14
- Localização: Tubarao-SC
Re: append from nao funciona
ANDRIL.
o tamanho maximo da structure é : 254
NAO funcionou, so salvao primeiro registro com o seguinte registro :
<?xml version="1.0" encoding="ISO-8859-1" ?><ans:diopsFinanc xmlns:ans="http://www.ans.gov.br/padroes/diops/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ans.gov.br/padroes/diops/schemas http://www.ans.
o tamanho maximo da structure é : 254
NAO funcionou, so salvao primeiro registro com o seguinte registro :
<?xml version="1.0" encoding="ISO-8859-1" ?><ans:diopsFinanc xmlns:ans="http://www.ans.gov.br/padroes/diops/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ans.gov.br/padroes/diops/schemas http://www.ans.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: append from nao funciona
joselimatb, eu fiz um teste aqui, copiei o conteúdo do xml que você passou acima e usei o código do Andril, todo o arquivo foi copiado para o DBF. A única coisa que notei, foi que como o campo do DBF tem apenas 250 caracteres, não copiou completamente a segunda linha do arquivo xML, pois ela tem mais de 260 caracteres.
Só uma observação: tente abrir este seu arquivo xML com o Bloco de Notas e verifique se o conteúdo do arquivos está como você passou acima. Pelo que parece, o conteúdo do arquivos está em uma linha só... e não em várias linhas como você passou acima.
Abraços,
Só uma observação: tente abrir este seu arquivo xML com o Bloco de Notas e verifique se o conteúdo do arquivos está como você passou acima. Pelo que parece, o conteúdo do arquivos está em uma linha só... e não em várias linhas como você passou acima.
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Re: append from nao funciona
Fiz aqui um teste com esse XML da sua postagem e foi importado corretamente.
Anexei o arquivo DBF porem esta como TXT, basta renomea-lo.
Ate+
Anexei o arquivo DBF porem esta como TXT, basta renomea-lo.
Ate+
- Anexos
-
teste.txt- Renomear teste.txt para teste.dbf
- (11.61 KiB) Baixado 209 vezes
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
-
joselimatb
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 28 Mai 2007 15:14
- Localização: Tubarao-SC
Re: append from nao funciona
ola, estou enviando em anexo o arquivo em anexo, veja como esta.
Obrigado
Obrigado
- Anexos
-
diops.zip- esta compactado
- (12.85 KiB) Baixado 249 vezes
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: append from nao funciona
joselimatb, era o que eu estava imaginando, todo o conteúdo do arquivo está em uma linha só!
Bom, se este seu arquivo xML vier sempre com uma linha só, então não vai dar para usar o APPEND FROM. Neste caso você tem que usar função FOPEN() para ler o arquivo.... abaixo tem uma função do Pablo (https://pctoledo.org/forum/viewto ... 848#p41848) que fiz algumas alterações:
Abraços,
Bom, se este seu arquivo xML vier sempre com uma linha só, então não vai dar para usar o APPEND FROM. Neste caso você tem que usar função FOPEN() para ler o arquivo.... abaixo tem uma função do Pablo (https://pctoledo.org/forum/viewto ... 848#p41848) que fiz algumas alterações:
Código: Selecionar todos
use caddiop new
zap
cTextFile:="diops.xml"
nFileHandle = FOPEN( cTextFile )
nFileSize = FSEEK( nFileHandle, 0, 2 )
FSEEK( nFileHandle, 0, 0 )
nBytesRead = 0
cAccumText:=""
DO WHILE nBytesRead<=nFileSize
cSingle = FREADSTR( nFileHandle, 1 )
nBytesRead = nBytesRead + 1
IF cSingle = ">"
cSingle = FREADSTR( nFileHandle, 1 )
nBytesRead = nBytesRead + 1
IF cSingle = "<"
APPEND BLANK
REPL campo WITH cAccumText+">"
cSingle = ""
cAccumText = "<"
ELSE
cAccumText = cAccumText + ">" +cSingle
ENDIF
ELSE
cAccumText = cAccumText + cSingle
ENDIF
ENDDO
IF !EMPT(cAccumText)
APPEND BLANK
REPL campo WITH cAccumText
ENDIF
FCLOSE( nFileHandle )
retuToledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Re: append from nao funciona
Como seu xml esta em uma unica linha, voce tera que separar os campos
por linha e depois importar para o DBF.
Veja se isto lhe serve.
Ate+
por linha e depois importar para o DBF.
Veja se isto lhe serve.
Código: Selecionar todos
use caddiop new
zap
cTextFile:="diops.xml"
cTextRes:="diopsR.xml"
hand2=fcreate("&cTextRes",0)
nFileHandle = FOPEN( cTextFile )
nFileSize = FSEEK( nFileHandle, 0, 2 )
FSEEK( nFileHandle, 0, 0 )
nBytesRead = 0
cAccumText:=""
*--aqui primeiro arruma o xml
DO WHILE nBytesRead<=nFileSize
cBuffer=space(1000)
cSingle = FREAD( nFileHandle, @cBuffer, len(cBuffer) )
cTexto=STRTRAN(cBuffer,"<a",chr(13)+chr(10)+"<a")
nBytesRead = nBytesRead + len(cBuffer)
fwrite(hand2,cTexto)
ENDDO
FCLOSE( nFileHandle )
fclose(hand2)
*--importa para o DBF
APPEND FROM "&cTextRes" SDF
retu
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: append from nao funciona
Amiguinho,
Tenho certeza que ao inves de puxar todo o conteudo usando APPEND é que a melhor saida será manipular o arquivo externamente como ja foi dito.
Se sua intenção é pegar o conteudo deste arquivo para variáveis analise este post e use a função PegaDados(). Veja que no post existem correções da mesma.
Ao identar o arquivo XML percebi que o mesmo esta incompleto:
Desta forma não fechando algumas tag como balancete, ativo etc.
Tenho certeza que ao inves de puxar todo o conteudo usando APPEND é que a melhor saida será manipular o arquivo externamente como ja foi dito.
Se sua intenção é pegar o conteudo deste arquivo para variáveis analise este post e use a função PegaDados(). Veja que no post existem correções da mesma.
Ao identar o arquivo XML percebi que o mesmo esta incompleto:
Código: Selecionar todos
<ans:diopsFinanc xmlns:ans="http://www.ans.gov.br/padroes/diops/schemas" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ans.gov.br/padroes/diops/schemas http://www.ans.gov.br/padroes/diops/sch ... xTypes.xsd">
<ans:identificador>
<ans:registroANS>416827</ans:registroANS>
<ans:razaoSocial>LIMA - PLANO DE SAUDE ODONTOLOGICO LTDA</ans:razaoSocial>
<ans:CNPJ>10289532000144</ans:CNPJ>
<ans:periodo>2010-06-30</ans:periodo>
<ans:transacao>ENVIO_DIOPS_FINANCEIRO</ans:transacao>
<ans:hashPwd>6A35047FD209DE7B3328729390EE16A7</ans:hashPwd>
<ans:apTrans>AR33</ans:apTrans>
</ans:identificador>
<ans:balancete>
<ans:inicioPeriodo>2010-06-30</ans:inicioPeriodo>
<ans:ativo>
<ans:lancamento>
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
joselimatb
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 28 Mai 2007 15:14
- Localização: Tubarao-SC
Re: append from nao funciona
Ola, pessoal agora sim, valeu mesmo, muito obrigado a todos.
uma otima semana para todos.
uma otima semana para todos.
Editado pela última vez por Toledo em 10 Ago 2010 10:20, em um total de 1 vez.
Razão: Mensagem editada para formatação de texto em letras minúsculas. Evite postar mensagens com texto EM LETRAS MAIÚSCULAS.<br>Veja as Regras do Fórum:<br>7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio.
Razão: Mensagem editada para formatação de texto em letras minúsculas. Evite postar mensagens com texto EM LETRAS MAIÚSCULAS.<br>Veja as Regras do Fórum:<br>7 - Mensagens em letras MAIÚSCULAS poderão ser editadas sem aviso prévio.
