Zitat von
himitsu:
...
Zitat von
Totti:
ne, seek läuft net bei textfile
Nicht ganz die Warheit
mein Seek64 funktioniert inoffiziell damit.
Äh, dem TFilestream.seek ist es doch völlig egal, wohin es den FilePointer per 'Seek' hinschiebt. Ergo geht TFileStream.Seek mit allen Dateien. Ausnahmslos.
Was Du benötigst, ist ein Random File
Access auf eine Textdatei. Das ist immer mit einem zusätzlichen Aufwand verbunden. Eine TStringlist ist ordendlich flott und sooo einfach. Teste das erstmal, bevor Du bezweifelst, ob Dir das reicht.
Wenn Du dann doch noch schnellere Tools brauchst, dann verwende ein TFileStream, lies die Datei in einen internen Buffer und schreibe Dir eigene Routinen, um diesen Buffer zeilenweise zu manipulieren. In Zeiten, wo der CPU in GHZ gemessen wird, sollten die Prozeduren unterhalb der Messgenauigkeit liegen. Wie lange dauert es denn, 4MB Textdaten im Speicher zu verschieben, um eine neue Zeile an erster Stelle einzufügen?
Imho gibt es keine Möglichkeit, "mal eben" (also sehr schnell) die 1517.te Zeile einer 122.959.454 Zeilen umfassenden Textdatei zu löschen.
Dazu sind eben Dateien mit fester Recordgröße ("File Of TRecord") da. Oder Datenbanken.