AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie speichert ihr? (Streams?)

Ein Thema von Patrick · begonnen am 15. Apr 2006 · letzter Beitrag vom 15. Apr 2006
Antwort Antwort
Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#1

Wie speichert ihr? (Streams?)

  Alt 15. Apr 2006, 11: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.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Wie speichert ihr? (Streams?)

  Alt 15. Apr 2006, 11:55
Könntest du kurz dein Record und die Schreib-Prozedur posten ?
Andernfalls wäre vielleicht XML was für dich.

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Wie speichert ihr? (Streams?)

  Alt 15. Apr 2006, 12:02
Hallo Patrick,

Du solltest eine binäre Datei niemals mit einem Texteditor öffnen und sie dann wieder speichern. Ein Texteditor fügt unter Umständen beim Speichern Zeilenvorschübe ein, welche die Struktur Deiner Datei zerstören!

Zum Bearbeiten einer binären Datei benötigst Du einen Hex-Editor.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Wie speichert ihr? (Streams?)

  Alt 15. Apr 2006, 12:03
Zitat von MrKnogge:
Andernfalls wäre vielleicht XML was für dich.
An sich würde ich dir zu einer Datei mit Struktur raten. Da ist XML natürlich nur ein Vertreter. Das Auszeichnen mit Tags findet aber (nicht umsonst) auch in anderen Files Anwendung. So kennen z.B. auch Tiffs feste Tags, die dir Information über einen Datentyp, Anzahl der Elemente und Interpretation liefern, ähnlich sieht es z.B. auch bei ID3 aus, ....

Natürlich eignet sich XML gleichzeitig dafür etwas sowohl menschen- als auch maschinenlesbar zu machen. Dann klappt's wohl auch mit dem Editor

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz