TStream, Insert und Delete möglich?
-
Hallo,
Ich arbeite mit Dateien und FileStreams und möchte fragen ob man einen bestimmten Abschnitt des Speicher löschen kann bzw ,in mitten irgendetwas hinzufügen kann. (Wie bei TSTringList)
z.B.:
Stream->Position = 36273; Stream->Delete(1234); // Die Nächsten 1234 Bytes löschen Stream->Position = 73; Stream->Insert(&IrgendwasZumReinschreiben,sizeof(..)); // Nach Position 73 einfügenDies wäre sehr nützlich da ich mit Dateien arbeite die teilweise auch über 1 GB haben und ich die Datei nicht jedesmal "neupacken" kann.
Oder gibt es da auch andere schnelle Wege?
~Jukka, Danke im Vorraus
-
Delete, Insert usw. musst du dir selbst schreiben. Dabei wirst du um mehr oder weniger umfangreiches Hinundherkopieren von Daten nicht umhinkommen. Die einzige Erleichterung, die TFileStream dabei bietet, ist CopyFrom, das sich allerdings nicht in allen Situationen anwenden lässt.
Möglicherweise gibt es in anderen Bibliotheken wie z.B. der STL vergleichbare FileHandling-Klassen mit erweiterten Methoden, damit kenne ich mich a) aber nicht aus und b) ist das ja dann auch nicht mehr BCB-spezifisch.