Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

PASCAL: schnell an letzte Zeile eines Textfiles kommen... ab

(Anonym) / 5 Antworten / Baumansicht Nickles

hi,
winzige Frage nur:
Wie komme ich in (Turbo)PASCAL schnell an die letzte Zeile einer (etwa 100MB großen) Text-Datei?

bei Antwort benachrichtigen
Dau (Anonym) (Anonym) „PASCAL: schnell an letzte Zeile eines Textfiles kommen... ab“
Optionen

Probier mal Control-End oder Control-Shift-End

bei Antwort benachrichtigen
(Anonym) Dau (Anonym) „Probier mal Control-End oder Control-Shift-End“
Optionen

nee, nee, so meint' ich das nich...
Normalerweise gehe ich mit while not EOF ... readln(f, zeile)... (oder so) über die ganze Datei, und wenn er fertig ist, habe ich die letzte Zeile in "zeile". Das reicht bei kleinen Dateien und seltenem Zugriff ja auch völlig aus... Aber nu is die Datei doch etwas größer, und bis alle Zeilen gelesen sind vergehen doch 'n paar Sekunden. (besonders auf "älteren" Rechnern)

bei Antwort benachrichtigen
[-ASF-]BloodCat (Anonym) (Anonym) „nee, nee, so meint ich das nich...Normalerweise gehe ich mit while not EOF ......“
Optionen

Hi!

öffne die Datei doch als Binärdatei mit Recordgröße 1 Byte, spring mit seek(FileSize(datei)) zum Ende und gehe 1 Byte nach das letzte #13 Zeichen zurück (For .. downto .. Schleife). Dann musst du halt die Zeile in einen String mit blockread auslesen und die Stringlänge manuell eintragen. (Keine Garantie für alles ich hab schon ewig nicht mehr in TP programmiert. Vielleicht funzt seek auch bei als Textdatei geöffneten Dateien?)

bei Antwort benachrichtigen
(Anonym) [-ASF-]BloodCat (Anonym) „Hi!öffne die Datei doch als Binärdatei mit Recordgröße 1 Byte, spring mit...“
Optionen

Super, danke. Ich glaub das isses...

bei Antwort benachrichtigen
[-ASF-]BloodCat (Anonym) (Anonym) „Super, danke. Ich glaub das isses...“
Optionen

Echt cool dann freu ich mich mit dir

bei Antwort benachrichtigen