Eu tenho um arquivo .\input.txtcomo este:
aaa
bbb
ccc
Se eu o ler TStrings.LoadFromFilee escrevê-lo novamente (mesmo sem aplicar nenhuma alteração) TStrings.SaveToFile, ele criará uma linha vazia no final do arquivo de saída.
var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.LoadFromFile('.\input.txt');
//...
Lines.SaveToFile('.\output.txt');
finally
Lines.Free;
end;
end;
O mesmo comportamento pode ser observado usando a TStrings.Textpropriedade que retornará uma string contendo uma linha vazia no final.
\ncaractere e a função adiciona o \nao arquivo? Ou a função literalmente adiciona um \nlogo após um existente \nno final do arquivo? O POSIX exige que os arquivos de texto tenham todas as suas linhas terminadas com a \n, apenas fyi. Lotes de software foi escrito para seguir algumas normas de modo que é por isso que muitos editores irá adicionar a terminação ausente \nquando você salvar arquivos por padrão (por exemplo vim, IDEs etc todos por padrão tornar seus arquivos compatível com POSIX.)