In etwa so:
Delphi-Quellcode:
i := FS.Read(Buffer, BufLen);
i2 := LetztenZeilenumruchSuchen;
i3 := i - i2 - 1{oder -2 ... je nach Länge des Zeilenumbruchs ... #10 / #13#10};
Delete(Buffer, i2 + 1{oder +2}, BisEnde);
FS.Seek(-i3, soCurrent);
und so schwer ist das doch garnicht?
- einfach nachsehn wie lang die letzte Teilzeile ist
- letzte (unvollständige) Teilzeile aus'm Puffer löschen
- um soviele Bytes im Stream zurückgehn, wie diese Zeile lang war