Eu tenho um arquivo .\input.txt
como este:
aaa
bbb
ccc
Se eu o ler TStrings.LoadFromFile
e 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.Text
propriedade que retornará uma string contendo uma linha vazia no final.
\n
caractere e a função adiciona o \n
ao arquivo? Ou a função literalmente adiciona um \n
logo após um existente \n
no 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 \n
quando você salvar arquivos por padrão (por exemplo vim
, IDEs etc todos por padrão tornar seus arquivos compatível com POSIX.)