Ich habe eine Datei .\input.txtwie diese:
aaa
bbb
ccc
Wenn ich es mit lese TStrings.LoadFromFileund zurückschreibe (auch ohne Änderungen vorzunehmen) TStrings.SaveToFile, wird am Ende der Ausgabedatei eine leere Zeile erstellt.
var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.LoadFromFile('.\input.txt');
//...
Lines.SaveToFile('.\output.txt');
finally
Lines.Free;
end;
end;
Das gleiche Verhalten kann mit der TStrings.TextEigenschaft beobachtet werden, die eine Zeichenfolge zurückgibt, die am Ende eine leere Zeile enthält.
\nZeichen endet und die Funktion das \nder Datei hinzufügt ? Oder fügt die Funktion buchstäblich ein \nRecht nach einem \nam Ende der Datei vorhandenen hinzu? Für POSIX müssen Textdateien alle Zeilen mit einem \n, nur zu Ihrer Information, abgeschlossen haben. Es wurde viel Software geschrieben, um einigen Standards zu entsprechen. Aus diesem Grund fügen viele Redakteure die fehlende Terminierung hinzu, \nwenn Sie Dateien standardmäßig speichern (z. B. vimIDEs usw. machen Ihre Dateien standardmäßig POSIX-konform.)