Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#12

Re: [Streams]: existierende Daten entfernen / einfügen

  Alt 9. Mär 2005, 16:13
Hallo,
Zitat von Dani:
Zitat von Luckie:
Wenn du mitten reinschreiben willst, dann wird dir nichts anderes übrigbleiben, als ab der Stelle den Rest in einem memoryStream zwischenzuspeichern, deinen Datensatz reinschreiben und dann den gesicherten Rest wieder dranzuhängen.
Das ist nicht akzeptabel, ich kann doch nicht bei einem 100 MB großen Archiv mal eben 99,99 MB in den RAM auslagern, nur weil ich einen Kommentarstring im Header ändern will!? Gibt es denn gar keine andere Lösung?
bei komplexeren Formaten würde ich nicht den klassischen Stream verwenden, sondern würde über das IStorage Interface gehen. Mit diesem Interface kann man innerhalb einer Datei ein "Dateisystem" anlegen. Man kann sich wie den Windows-Explorer vorstellen.
Das IStorage Interface gibt es schon so lange, dass es sogar in der Win32 Referenz, die mit Delphi geliefert wird beschrieben wird. Mit ein bißchen COM Kenntnissen und googeln sollte es nicht all zu schwierig werden.
Eine Datei mit Header mit Datenteil würde dann intern so aussehen
Code:
Root
  |----Header
  |----Daten
Man kann dann nur in den Header schreiben (so viel man möchte). Der Datenteil bleibt davon unberührt.
I come from outer space to save the human race
  Mit Zitat antworten Zitat