como tirar o char(10) do arquivo gerado de dbf para txt

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por juniorcamilo »

amigos. quando c gera a partir do dbf para arquivo txt ele gera um caracter na ultima linha..

|9990|41|
|9999|629|

nao da para aparecer aqui mais c abrir em bloco de notas da pra ver.. veja o anexo!
Anexos
teste.txt
(278 Bytes) Baixado 178 vezes
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por Eolo »

Esse caracter (uma seta "->" que é mostrada no bloco de notas), se não me falha a memória, é o chr26, fim de arquivo, que o DBF manda e o SO não usa. Ficam dois...

Tanto que vc pode, no bloco de notas, excluir ele, mandar salvar o arquivo, abrir novamente e vai estar tudo certo, SEM o caracter.

Talvez tenha algum jeito mais fácil, mas uma saída é ler o TXT inteiro (FREAD) e regravar com tamanho -1 (FWRITE).
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por Eolo »

Aliás, no título do post você diz "tirar o chr(10)".
De fato, no final de cada linha, tem um chr(13) e um chr(10), e, no fim do arquivo, o chr(26). Você, então, quer se ver livre do 26, certo?
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por Toledo »

Junior, talvez a função FDelEof() que está na mensagem do nosso amigo JoséQuintas pode ajudar, veja a mensagem abaixo:

Erro: arq txt nao gera CR e LF no final

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
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por Pablo César »

Permita-me fazer uma ressalva. Na minha opinião, antes de executar a função FDelEof ou até mesmo na própria função, deveria checar se o ultimo caracter é mesmo CHR(10).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por Eolo »

Pablo,
A precaução procede, eu faria o mesmo, mas note que o problema é com o CHR 26 EOF (e não com o CHR 10).

Junior,
Anexo um dump do arquivo que vc postou:
- no final de cada linha, há um CHR 13 CR-Carriage Return e um CHR 10 LF-Line Feed (fazem a necessária quebra de linha).
- no final do arquivo, aparece o CHR 26 EOF (que é a "seta" que aparece no bloco de notas), que é preciso eliminar.

Aliás, dependendo da destinação do TXT, bastaria o CHR 13. O CHR 10 (quebra automática de linha) pode ser dispensável...
Anexos
Dump.zip
(81.72 KiB) Baixado 158 vezes
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por alxsts »

Olá!

O tópico Ler e regravar um arquivo TXT com as funções de baixo nível trata deste assunto e mostra como remover bytes do final de um arquivo.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por juniorcamilo »

opa amigos sim eu não conferi c era o chr(10) ou chr(26), sabia de cabeça que sempre em fim de linha ele atribui o chr(13)+chr(10) por isso da gafe, mas estou corrigindo, vou verificar e posto aqui mais tarde... obrigado...
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

como tirar o char(10) do arquivo gerado de dbf para txt

Mensagem por juniorcamilo »

amigos deu certo a solução do amigo JoséQuintas, eu me expressei errado no assunto, mais uma vez obrigado, fica ai mais uma tag de procura no fórum, este assunto ja havia sido citado no fórum,
viewtopic.php?f=1&t=10804&hilit=txt#p61555

obrigado;...
Responder