Tengo un archivo .\input.txt
como este:
aaa
bbb
ccc
Si lo leo usando TStrings.LoadFromFile
y 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.Text
propiedad que devolverá una cadena que contiene una línea vacía al final.
\n
carácter y la función agrega \n
el archivo? ¿O la función agrega literalmente un \n
derecho después de uno existente \n
al 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 \n
al guardar archivos por defecto (por ejemplo vim
, entornos de desarrollo, etc., todo de forma predeterminada hacer que sus archivos compatible con POSIX.)