Okay, also nochmal von vorne:
Es handelt sich nicht um ein Geheimobjekt
Es geht mir darum, aus den Datenbankdateien eines Spiels (hier der FussballManager von EA) bestimmte Informationen herauszusuchen, zu ersetzen, etc. Da ich verschiedenste Anwendungsbereiche im Auge habe, möchte ich eine möglichst allgemeingehaltene Lösung, auch wenn diese evtl. für diverse Anforderungsbereiche nicht immer optimal die Anforderungskritierein erfüllen.
Die Datenbank-Dateien sind ganz normale Textdateien, die die verschiedensten Daten eines Landes (Spieler(-name, alter, -etc), Mannschafts(-name,-farbe,-etc)) getrennt durch Zeilenumbrüche enthalten. Zudem existiert eine Indexauteilung durch Zeilen der Sytax "%index%playerX" u.ä., die dem Spieleigenen Editor zum Einlesen dienen, mir jedoch auch manchmal bei der Suche behilflich sind.
Die Operationen, die ich gerne ausführen möchte sind
a) ganz simpel einfach die Daten durchgehen und bestimmte Informationen abgreifen (auslagern, etc.)
b) die Daten durchgehen, bestimmte Dinge auslagern und hierauf basierend in der Quelldatei wieder andere Daten (Zeilen) ändern
Ganz wichtig ist halt, dass die Quelldatei logischerweise in ihrem nativen Format bestehen bleiben muss, damit der spieleigene Editor sie weiterhin einlesen kann. Zudem ist es sicherlich sinnvoll zu erwähnen, dass die Schreibvorgänge nicht immer nur vor oder direkt hinter dem Dateizeiger stattfinden, sondern auch gerne mal genau 67 Zeilen vorher o.ä.
Ich hoffe, dass diese Beschreibung mehr bringt und ihr evtl. noch was spezielles vorschlagen kann. Ansonsten dürfte ein array meine Anforderungen eigtl. erfüllen.
Bei dem TFileStream ist das Problem, das ich persönlich sehe, dass man den gesamten nachfolgenden Text um die Anzahl der Zeichen verschieben muss, die man in einer Zeile einfügt.
Nochwas zum Umfang der Operationen:
Die einzelnen
DB-Dateien (diese im Textformat) haben einen Umfang von 2KB und 300 Zeilen bis zu 3,6MB und 600000 Zeilen
und es kann passieren, dass ich verteilt auf 206 Dateien bei mehr als 100.000 Spielerabschnitten jeweils 2-3 Datenzeilen auslesen/ändern muss/möchte.