Tengo un archivo .\input.txtcomo este:
aaa
bbb
ccc
Si lo leo usando TStrings.LoadFromFiley lo escribo de nuevo (incluso sin aplicar ningún cambio) TStrings.SaveToFile, crea una línea vacía al final del archivo de salida.
var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.LoadFromFile('.\input.txt');
//...
Lines.SaveToFile('.\output.txt');
finally
Lines.Free;
end;
end;
Se puede observar el mismo comportamiento utilizando la TStrings.Textpropiedad que devolverá una cadena que contiene una línea vacía al final.
\ncarácter y la función agrega \nel archivo? ¿O la función agrega literalmente un \nderecho después de uno existente \nal final del archivo? POSIX requiere que los archivos de texto tengan todas sus líneas terminadas por un \n, solo para su información. Un montón de software fue escrito para seguir algunas normas y por eso una gran cantidad de editores añadirá la terminación falta \nal guardar archivos por defecto (por ejemplo vim, entornos de desarrollo, etc., todo de forma predeterminada hacer que sus archivos compatible con POSIX.)