Registriert seit: 28. Jun 2007
417 Beiträge
|
Re: In Stream schreiben und lesen ?
26. Jun 2008, 09:47
Ohne jetzt genauer auf deinen Code einzugehen:
1. Mit LoadFromStream lädst du den gesamten Stream.
Ich hatte das selbe Problem einmal, als ich mehrere Bilder in einen Stream schreiben wollte. Ich habe mir dazu einen temporären MemoryStream erzeugt, in dem ich das Bitmap mit LoadFromStream, bzw. WriteToStream gepackt habe (genau ein Bitmap). Zusätzlich hatte ich einen FileStream in den, Bitmap für Bitmap, der temporäre Stream geschrieben wurde (natürlich mit den entsprechenden Größenangaben des jeweiligen Bitmaps, damit auch wieder zurück gelesen werden kann).
2. Natürlich ist das möglich, sobald du verstanden hast, wie der Stream funktioniert, dann wirst du das auch umsetzen können, in aller Kürze:
Die Anzahl deiner Icons im Stream steht in den ersten vier Byte des Stream (LongInt), danach folgt ein Icon. Nun musst du dir zunächst merken, wo du aktuell im Stream stehst. Du setzt die Streamposition auf den Anfang (auf die Anzahl der Icons) und schreibst die neue Anzahl in den Stream. Danach setzt du die Streamposition wieder auf den gemerkten Wert (auf das Ende des zuletzt gespeicherten Icons). Da deine Icons alle gleich groß sind bestünde auch die Möglichkeit die Position aus der Anzahl und Größe der Icons zu errechnen, ganz wie du willst.
3. Kann ich jetzt nichts dazu sagen, weil ich mich nicht näher mit beschäftigt habe.
|