Página 1 de 1

Arquivo TXT para DIRF

Enviado: 08 Jan 2008 12:36
por locio
Estou gerando um arquivo txt para a DIRF e quando eu tento validar o programa da DIRF da a mensagem:

"Arquivo com tamanho invalido,verifique se possui CRLF(enter) no final de cada linha. Não deverá existir o caractere `1A`(hexa) no final do arquivo."

já tentei usar com os comandos do clipper:

copy to arquivo fields campo sdf

e tambem tentei gerar como "alternate file"

nos dois casos deu a mesma mensagem.

Será que voces podem me ajudar.

Enviado: 08 Jan 2008 13:29
por gvc
Coloque:

set alternate to (arquivo)

while ...
?? <linha de dados>
?
dbskip()
end

set alternate off

ou use o fwrite, lembrando que no final de cada linha gravada, vc deve colocar chr(13) + chr(10)

Enviado: 08 Jan 2008 14:46
por Maligno
"Arquivo com tamanho invalido,verifique se possui CRLF(enter) no final de cada linha. Não deverá existir o caractere `1A`(hexa) no final do arquivo."
Verificou o arquivo num editor binário pra saber como está o final da linha? A ordem correta é CR (13d ou 0Dh) e LF (10d ou 0Ah). Se não estiver assim, o problema está no seu código mesmo.

Particularmente, em exportação de dados desse tipo, prefiro gravar os dados num DBF temporário e depois gravar registro a registro usando FWrite(), como o colega GVC comentou. É bem fácil de fazer. Nunca usei ALTERNATE.

Gerar TXT desde um DBF

Enviado: 08 Jan 2008 15:00
por Toledo
Eu faço aqui igual ao exemplo do GVC, mas com alguns comandos a mais...

Código: Selecionar todos

vARQ:="DIRF.TXT"
SET ALTE TO (vARQ)
SET ALTE ON
SET CONS OFF
DO WHILE !EOF()
  ??CAMPO
  ?
  SKIP
ENDDO
SET ALTE OFF
SET ALTE TO
SET CONS ON
Abraços,