Leitura de arquivo texto com separador tab

Delphi

30/01/2006

Boa tarde pessoal ..
recebi um arquivo texto no qual o separador é um tab

ex.

1 Primeiro registro rua a 125 322236325
2 Segundo reg rua b 128 32225222
3 terceiro registro e ultimo rua c 3232


como eu faço para ler isso?
Obrigado por mais essa
JM


Jm

Jm

Curtidas 0

Respostas

Tnaires

Tnaires

30/01/2006

Olá
Ler, como assim? O q vc quer fazer com o conteúdo do arquivo?
Abraços


GOSTEI 0
Netosdr

Netosdr

30/01/2006

Caro colega,

Acredito que vc tenha um problema bem chato de se resolver, pois se um dos campos for do tipo texto (exemplo nome) pode conter espaço em um mesmo campo, ou seja, mesmo que vc crie uma rotina para importar esse arquivo não vai ficar 100¬.

Você pode importar pelo Excel, especificando que o delimitador é o espaço em branco, depois organize os campos e exporte para tabulado por , (vírgula) que é bem mais coerente e fácil de se criar uma rotina para importar como dados em seu sistema.

Espero ter ajudado.

Abraço.


GOSTEI 0
Michael

Michael

30/01/2006

Acredito que a sua dificuldade seja informar o caractere de tab via código, certo? Faça assim:

Tab := Chr(VK_TAB);


Agora basta usar um algoritmo de parser e informar [b:72d4b91cf8]Tab[/b:72d4b91cf8] como separador. Existem muitos na Web, ou vc pode usar a classe [b:72d4b91cf8]TStringList [/b:72d4b91cf8]do Delphi, utilizando as propriedades [b:72d4b91cf8]Delimiter [/b:72d4b91cf8]e [b:72d4b91cf8]DelimitedText[/b:72d4b91cf8].

Colega [b:72d4b91cf8]netosdr[/b:72d4b91cf8], a idéia de se usar Tab como separador é exatamente para não se ter problemas como o apresentado por vc, ao se utilizar espaços como delimitadores. Para garantir ainda mais a consistência dos dados (consistência de dados em arquivos texto é ótimo...), pode-se ainda usar algum caractere não-imprimível, como ESC.

[]´s


GOSTEI 0
Netosdr

Netosdr

30/01/2006

Caro colega Michael,

Desculpe a falha. Havia entendido que o seperador estava espaço no arquivo e não TAB como realmente foi informado.

Abraço.


GOSTEI 0
POSTAR