Remover linha de arquivo TXT criado no Delphi
Boa noite.
Eu estou gravando com o Delphi um arquivo TXT e acontece que após ele gravar a última linha e salta o cursor para a linha debaixo, ou seja, passa a contar como mais uma linha porém sem nada e cursor fica no início.
Como faço para remover ou impedir que esse linha seja criada, ou fazer com que ao gravar a última linha no arquivo o cursor fique no final da mesma evitando assim essa situação.
Eu estou gravando com o Delphi um arquivo TXT e acontece que após ele gravar a última linha e salta o cursor para a linha debaixo, ou seja, passa a contar como mais uma linha porém sem nada e cursor fica no início.
Como faço para remover ou impedir que esse linha seja criada, ou fazer com que ao gravar a última linha no arquivo o cursor fique no final da mesma evitando assim essa situação.
Pedro
Curtidas 0
Respostas
Joel Rodrigues
07/10/2014
Como você está gravando o arquivo?
GOSTEI 0
Pedro
07/10/2014
Como você está gravando o arquivo?
Então Joel, eu estou fazendo dessa forma:
var
f : TextFile;
nome : String;
begin
AssignFile (f, ExtractFilePath (ParamStr (0)) + nomes.txt');
ReWrite(f);
Nome := '';
while not tabela.eof do
begin
nome := tabelanome.asstring;
WriteLn(f, nome);
tabela.next;
end;
CloseFile(f);
end;
GOSTEI 0
Jean Motta
07/10/2014
Pedro, a sugestão é que você coloque um IF antes de escrever, testando se o registro do seu dataset é o último. Caso seja o ultimo a ser gravado, aí usa-se Write ao invés de WriteLn. Olha aí...
begin
AssignFile (f, ExtractFilePath (ParamStr (0)) + nomes.txt');
ReWrite(f);
Nome := '';
while not tabela.eof do
begin
nome := tabelanome.asstring;
//aqui
if tabelanome.recNro <> tabelanome.recordcount then
WriteLn(f, nome)
else
Write(f, nome);
tabela.next;
end;
CloseFile(f);
end;
begin
AssignFile (f, ExtractFilePath (ParamStr (0)) + nomes.txt');
ReWrite(f);
Nome := '';
while not tabela.eof do
begin
nome := tabelanome.asstring;
//aqui
if tabelanome.recNro <> tabelanome.recordcount then
WriteLn(f, nome)
else
Write(f, nome);
tabela.next;
end;
CloseFile(f);
end;
GOSTEI 0