Ler Arquivo TXT ASCII
Moderador: Moderadores
Ler Arquivo TXT ASCII
Eu crio um arquivo .TXT no VB6 com o padrão ASCII. Quando abro no bloco de notas todos os caracteres estão corretos inclusive os acentos e cedilhas. Estou importando para o CLIPPER com a opção APPEND FROM ... DELIMITED e quando é importado os acentos e cedilhas ficam truncados. O que fazer?
Re: LER ARQUIVO TXT ASCII
O Windows (Bloco de Notas, Word, etc) usa o set de caracteres ANSI, enquanto que o DOS (Clipper) usa o OEM, por isso a "bagunça". O xHarbour tem funções prontas pra converter de um set pra outro, mas o Clipper - até onde eu sei - não tem. O jeito é você montar uma função sua (usando o STRTRAN() ou STUFF() etc.) e usá-la depois do APPEND pra acertar a acentuação.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: LER ARQUIVO TXT ASCII
Com a dica do Colega Eolo, você pode usar a função do link abaixo:
viewtopic.php?f=43&t=4374
viewtopic.php?f=43&t=4374
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: LER ARQUIVO TXT ASCII
Obrigado. A função resolveu. Alterei um pouco para ficar mais rápida e não utilizar matrizes que consomem muita memória no Clipper. Segue abaixo a função que troca caracteres truncados do Windows para DOS utilizando a função nativa do Clipper STRTRAN():
// Converte Caracteres Windows para DOS
// Converte Caracteres Windows para DOS
Código: Selecionar todos
FUNCTION VWinDos(pString)
wCarWin="áéíóúãõâêîôûàèìòùäëïöüçñÁÉÍÓÚÃÕÂÊÎÔÛÀÈÌÒÙÄËÏÖÜÇÑ"
wCarDos=" ‚¡¢£ÆäƒˆŒ“–…Š•—„‰‹”‡¤µÖàéÇå¶Ò×âê·ÔÞãëŽÓØ™š€¥"
wNovaStr=ALLTRIM(pString)
wRetorno=""
FOR wCont=1 TO 48
wNovaStr=STRTRAN(wNovaStr,SUBSTR(wCarWin,wCont,1),SUBSTR(wCarDos,wCont,1))
wRetorno=wNovaStr
NEXT
RETURN(wRetorno)Re: LER ARQUIVO TXT ASCII
Se fosse em outra situação, até discordaria de você. Mas na função que foi usada de exemplo, realmente o consumo de memória da matriz é maior. Agora, pra quem utiliza muitas variáveis de memória, matriz é o ideal pra economizar memória, simplificar código e acelerar o processamento. Apenas a título de observação: tenho listas de GETs que podem contar com centenas de campos. Só uso matrizes. Até por questão de codificação, o uso de variáveis poderia até inviabilizar o recurso.e não utilizar matrizes que consomem muita memória no Clipper
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!


