Einzelnen Beitrag anzeigen

tuebben

Registriert seit: 6. Sep 2006
Ort: in der Nähe von Köln
12 Beiträge
 
Turbo Delphi für Win32
 
#1

2 Gigabyte grosse Datei blockweise durchsuchen

  Alt 28. Dez 2006, 13:46
Hallo,

als Delphi-Noob stehe ich momentan vor der Aufgabe, sehr große Text-Dateien (bis zu 2 Gigabyte) nach bestimmten Schlüsselwörtern
durchsuchen zu müssen. Diese können sowohl im ASCII- als auch im Unicode-Format vorliegen.

Ich würde dann die Datei öffnen und blockweise einlesen. Jeden Block durchsuche ich nach dem Schlüsselwort und merke mir dann die
Position in der Datei. Bevor ich den nächsten Block lese, setze ich den Filepointer um ein paar Bytes zurück, damit ich
Schlüsselwörter, die zwischen 2 Blocks liegen auch erfassen kann.

Nun wollte ich an dieser Stelle nach einer geeigneten Vorgehensweise fragen. Einige Recherchen in diesem Forum ergaben, dass
anscheinend TFileStream das Mittel der Wahl ist. Ist das so korrekt? Würdet Ihr für die Aufgabenstellung ebenfalls TFileStream
benutzen?

Zum Merken der Positionen der Schlüsselwörter in der Datei würde ich ein Objekt benötigen, was einer VB-Collection (also eine
dynamische Liste, der man zur Laufzeit beliebig Items anhängen kann) gleichkäme. Welches Objekt würde ich dann in Delphi verwenden
können?

Danke im voraus & Grüße ... Peter

// Edit:

Wichtige Info noch als Nachtrag: Die zu durchsuchenden Dateien haben keinen Zeilenumbruch.
Ein zeilenweises Einlesen ist somit nicht möglich.
Peter Tübben
  Mit Zitat antworten Zitat