Registriert seit: 15. Sep 2003
184 Beiträge
Delphi 2010 Professional
|
Wie speichert ihr? (Streams?)
15. Apr 2006, 12:50
Hallo,
Ich möchte meine Programmdaten speichern. Sagen wir ich möchte verschiedene Variablen speichern: Integer, Extended, String, array of string, boolean
Also ich würde das ganze per FileStream speichern. Damit kann ich alles so wie es ist auf die Platte schreiben. Ein Ini-File ist wegen des Array nicht geeignet und eine Typisierte Datei fällt wegen den dynamischen Strings weg.
Also per File Stream funktioniert das ganz gut. (Statt String nehme ich halt AnsiSring) Jetzt schreibe ich aber an den Anfang meiner Datei noch eine Ziffer (Integer), die angibt welche Datei-Version das ist. Wenn ich dann irgendwann auf die Idee komme mein Programm zu modifizieren und mehr zu speichern habe, möchte ich die "Alte" Datei dennoch laden können (mit dem alten Lade-Algorithmus). Aber hier setzt das ganze aus.
Was ich auch nicht ganz verstehe: Ich öffne die Datei mit dem Editor. Die Strings sind ja gut lesbar. Jetzt ersetze ich einen Buchstaben eines Strings mit einem anderen und speicher die ganze Sache. An der Länge des Strings hat sich ja nix geändert. Aber Laden kann ich diese Datei nicht mehr. Ausserdem meint er, dass sich die Datei-Versions-Ziffer verändert hat. Warum? Die Ziffer steht am Anfang des Streams. Der String aber irgendwo mitten drin?
Also ich habe das mit dem Speichern von Streams so verstenden. Jeder Datentyp wird so wie er ist auf die Platte geschreiben (mit Längenangabe). Und so kann ich ihn auch wieder laden. Oder sehe ich da was falsch?
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
|