arquivo de texo
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);
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
Curtidas 0
Respostas
Massuda
14/12/2004
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?
GOSTEI 0
Joni
14/12/2004
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
GOSTEI 0
Alfadesign
14/12/2004
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);
GOSTEI 0
Alfadesign
14/12/2004
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);
GOSTEI 0
Massuda
14/12/2004
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);
GOSTEI 0
Massuda
14/12/2004
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);
GOSTEI 0