Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Objektproperties speichern?

  Alt 12. Apr 2005, 18:56
Es gibt viele Möglichkeiten ein Objekt persistent zu machen, z.B.
  • Konfigurations-Datei (.ini)
  • Binär-Datei
  • Datenbank (SQL, LDAP)
Du scheinst dich gerade an der zweiten Variante zu versuchen. Spendiere deiner Klasse die Methoden Load und Save. Darin kannst Du dann die property values in den stream schreiben und wieder einlesen. Wenn du mehrere Objekte in derselben Datei persistent machen willst, dann nenne die Methoden LoadFromStream(s: TStream) und SaveToStream(s: TStream). Der Vorteil dieser Methode ist die Geschwindigkeit - es wird kein Parser benötigt, das Objekt weiss, was in welcher Reihenfolge gespeichert und geladen wird. Der Nachteil ist, wie du richtig vermutest, dass jede neue Version deiner Klasse die alten Speicherstrukturen migrieren können muss.

Kleinere Datenmengen, die nur zu Beginn und am Ende deiner Arbeit transferiert werden, kannst Du getrost in einer Konfigurationsdatei ablegen. Die hat den Vorteil, dass sie human readable ist.

Werden deine property values häufig und von mehreren Instanzen deines Programms transferiert, dann kommst du wegen der notwendigen Zugriffskontrolle nicht um eine Datenbank herum.

Der von dir angegebene Quellcode macht nicht viel Sinn, aber das hast du vielleicht schon selbst bemerkt.
  Mit Zitat antworten Zitat