Fórum arquivo de texo #261927

14/12/2004

0

nesse código ele nao le a ultima linha do arquivo de texo, como eu faço para ele ler tambem a ultima linha?

AssignFile(arq, ´C:\texto.TXT´);
reset(arq);
readln(arq, linha);

while not eof (arq) do
begin
//comando
readln(arq,linha);
end;
ReWrite(Arq);
closefile(arq);


Joni

Joni

Responder

Posts

14/12/2004

Massuda

Experimentei rodar seu código (declarei arq como TextFile e linha como string) e não encontrei problema algum. Como você sabe que ele não está lendo a última linha?


Responder

Gostei + 0

14/12/2004

Joni

Experimentei rodar seu código (declarei arq como TextFile e linha como string) e não encontrei problema algum. Como você sabe que ele não está lendo a última linha?


eu tenho um aquivos com cerca de 30 linhas,e mando ele ler as linha e jogar numa tabela, e a ultima linha do arquivo nao eh inserida na tabela


Responder

Gostei + 0

14/12/2004

Alfadesign

nesse código ele nao le a ultima linha do arquivo de texo, como eu faço para ele ler tambem a ultima linha? AssignFile(arq, ´C:\texto.TXT´); reset(arq); readln(arq, linha); while not eof (arq) do begin //comando readln(arq,linha); end; ReWrite(Arq); closefile(arq);


Realmente, pois o eof é a última linha, então quanto ele a encontra sairá do laço. faça o seguinte:

AssignFile(arq, ´C:\texto.TXT´);
reset(arq);
readln(arq, linha);

while not eof (arq) do
begin
//comando
readln(arq,linha);
end;
readln(arq,linha); //esta linha força a leitura da última linha
ReWrite(Arq);
closefile(arq);


Responder

Gostei + 0

14/12/2004

Alfadesign

nesse código ele nao le a ultima linha do arquivo de texo, como eu faço para ele ler tambem a ultima linha? AssignFile(arq, ´C:\texto.TXT´); reset(arq); readln(arq, linha); while not eof (arq) do begin //comando readln(arq,linha); end; ReWrite(Arq); closefile(arq);


Realmente, pois o eof é a última linha, então quanto ele a encontra sairá do laço. faça o seguinte:

AssignFile(arq, ´C:\texto.TXT´);
reset(arq);
readln(arq, linha);

while not eof (arq) do
begin
//comando
readln(arq,linha);
end;
readln(arq,linha); //esta linha força a leitura da última linha
ReWrite(Arq);
closefile(arq);


Responder

Gostei + 0

14/12/2004

Massuda

Imaginando que seu código para inserir no BD esteja onde você marcou com ´//comando´...
AssignFile(arq, ´C:\texto.TXT´); reset(arq); readln(arq, linha); while not eof (arq) do begin //comando readln(arq,linha); end; ReWrite(Arq); closefile(arq);
De fato a última linha não é processada... a última linha é lida pelo readln mas em seguida o while interrompe o loop porque atingiu o fim do arquivo e a última linha não é processada pelo ´//comando´. Melhor mudar para:
AssignFile(arq, ´C:\texto.TXT´);
reset(arq);
while not eof (arq) do begin
  readln(arq,linha);
  //comando
end;
ReWrite(Arq);
closefile(arq);



Responder

Gostei + 0

14/12/2004

Massuda

Melhor ainda :oops: :
AssignFile(arq, ´C:\texto.TXT´);
reset(arq);
while not eof (arq) do begin
  readln(arq,linha);
  if not eof(arq) then
    //comando
end;
ReWrite(Arq);
closefile(arq);



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar