Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ederverza

Leitura de txt com campos separados por ponto e virgula

Recommended Posts

Ola, preciso converter para base de dados um arquivo txt com os campos separados por ponto e vírgula,como faço essa leitura ?Agradecido;Eder Roberto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ler o arquivo basta fazer:

 

procedure TForm1.BitBtn1Click(Sender: TObject);var	str: string;	txt: TextFile;beginAssignFile(txt, 'caminho do arquivo');{$I-}Reset(txt);{$I+}if IOResult <> 0 then	Application.MessageBox('Erro ao abrir o arquivo !','Arquivo',MB_OK or MB_APPLMODAL or MB_ICONWARNING)else	begin	while not Eof(txt) do		begin		Readln(txt,str);		//variavel STR irá conter as informações da linha em questão, basta separar as informações conforme quiser		end;	end;CloseFile(txt);end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade separar eh o meu problema.....ler a linha beleza...agora separar eh o mais complicado.....ainda mais que os campos nunca estaum na mesma posicao....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa apenas pegar a linha, colocar em um for de acordo com o tamanho, e sempre que encontrar o ; separar o valor e armazenar em variavel ou um StringList, tente montar alguma coisas, caso não consiga fazer, coloque aqui no tópico.O n° de campos da linha sempre vai ser o mesmo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso...o numero de campos vai sempre ser o mesmo em cada linha......eu vou tentar aki ..qq duvida posto ai....falew..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou fazer da seguinte forma.... Dados := copy(Linha,0,Pos(';',Linha)-1); linha := copy(Linha,Pos(';',Linha)+2,Length(Linha));a variavel linha vai receber ela mesma menos o conteudo que eu preciso...assim a cada vez q passar, eu retiro da linha o conteudo que preciso para cada campo da tabela..ai vou pegando sempre os primeiros caracteres ate o ';'....certo....faleu pela ajuda...abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

tive um problema parecido com o seu uma vez, dai perguntei em outro forum e a resposta q me deram talvez funcione no seu :

Begin        cr := chr(13);        lf := chr(10);    While (iPos>0) do    Begin    If Copy(abrir,iPos,1)=';' then      Begin        sLeft  := Copy(abrir,1,iPos-1);        sRight := Copy(abrir,iPos+1,Length(abrir)-iPos);        Break;      End;    iPos := iPos-1;    nome := sright;  End;

o sleft receberá tudo antes do ' ; ' e o sright receberá tudo depois do mesmo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.