Einzelnen Beitrag anzeigen

guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#18

Re: Bitmaps archivieren und laden?

  Alt 27. Sep 2007, 13:29
Äh, wie? Wo willst du denn deine Datei speichern, wenn nicht auf der Platten?

Ich beschreib mal kurz was ich mache:

In der Datei sollen die Daten für Spielkarten (war mal ne Spielidee) gespeichert werden. Die bestehen aus einem Bitmap und aus diversen Strings. Mein Wunsch war dabei, dass ALLE Karten in EINER Datei gespeichert sind.

Also zum Speichern:

1. Zuerst die Anzahl der Karten abspeichern
2. Die Datenlänge des ersten Bitmap abspeichern (notwendig zum Lesen)
3. Die Daten des Bitmap speichern
4. Die Datenlänge des ersten String abspeichern
5. Die Daten des ersten String abspeichern
6. Alle weiteren Daten einer Karte nach dem gleichen Verfahren abspeichern
7. Bei 2. beginnen, bis alle Karten gespeichert sind

Beim Lesen:

1. Die Anzahl der Karten lesen
2. Die Datenlänge der ersten Bitmap lesen
3. Die Daten des ersten Bitmap mit Hilfe der Datenlänge lesen
4. Die Datenlänge des ersten Strings lesen
5. Die Daten des ersten Strings lesen
6. Alle weiteren Daten einer Karten nach dem gleichen Verfahren lesen
7. Bei 2. beginnen, bis alle Karten gelesen sind

Zum Speichern verwende ich einen FileStream (Datei auf der Platte)
Intern verwende ich einen Memorystream als Puffer für EIN Bitmap, damit ich auf einfach Weise die Länge des Bitmap rauskriege. Das Bitmap bringt nämlich eine Methode "SaveToStream" schon mit. Danach schreibe ich die Daten aus dem Memorystream in den Filestream.

Wenn ich deine Intention richtig verstanden habe, dann möchtest du viele Bitmap in einer Datei speichern, also:

1. Anzahl der Bitmaps in den Stream schreiben
2. Länge des ersten Bitmapnamens schreiben
3. Daten des Bitmapnamens schreiben
4. Länge des ersten Bitmaps schreiben
5. Daten des Bitmaps schreiben
6. Bei 2. beginnen bis alle Bitmaps geschrieben sind

Zum Lesen:

1. Anzahl der Bitmaps im Stream lesen
2. Länge der ersten Namens lesen
3. Namen des ersten Bitmap lesen
4. Vergleichen, ob es der Name des gesuchten Bitmap ist, falls nein:
5. Länge des ersten Bitmap lesen
6. Zeiger des Stream um diese Länge auf den Namen des nächsten Bitmap setzen.
7. usw. usw.
  Mit Zitat antworten Zitat