Forum: Object-Pascal / Delphi-Language
Delphi
by BUG,
19. Sep 2012
Dann könnte man die anderen Strategien verfolgen und dabei den Index gleich mit aufbauen. Sobald man in der Datei sucht, muss man eh kontinuierlich lesen. Dabei kann man den Index gleich mit aufbauen. Man könnte den Index sogar speichern und bei Dateien, an die nur angehangen wird (bei großen Textdateien nicht unwahrscheinlich), sogar behalten, wenn die sich geändert haben.
Forum: Object-Pascal / Delphi-Language
Delphi
by BUG,
19. Sep 2012
Ich würde eine Abbildung zwischen Zeilenpositionen und Blöcken (gleicher Größe) innerhalb der Datei machen.
Dafür würde ich für mir jeden Block, an den ich ausgelesen habe, merken, welche die erste Zeilennummer im Block ist.
Als Blockgröße würde ich 4kB vorschlagen, wenn du eh mit Memory Mapped Files arbeitest.
Der Index wäre dann aber auch relativ groß (ca. 20MB-40MB bei einer 20GB großen...