Entwickler-Ecke

IO, XML und Registry - Problematik der Datenspeicherung


TheNeon - Do 25.11.10 19:31
Titel: Problematik der Datenspeicherung
Hallo zusammen,

also ich hoffe das richtige Forum gewählt zu haben ...

Mein Problem ist folgendes:
Ich habe
  1. CheckedListView
  2. CheckedListView
  3. Treeview
  4. "Einstellungen"
gegeben und in dieser Reihenfolge existiert für jedes Item in diesen Komponenten eine zugehörige Liste in der untergeordneten Komponente. Sprich: Für jeden Eintrag in der ersten ListView gibt es eine Liste im zweiten ListView und für jeden solchen Eintrag widerum gibt es eine eigene Verzeichnisdarstellung im Treeview. Für jeden Eintrag im Treeview gibt es eine weitere Liste mit Einstellungen, die momentan 3 Elemente enthält

Mein Problem ist nun, dass ich derartiges bisher nicht abgespeichert habe und es mit einer INI-Datei o.ä. nicht getan sein wird - jedenfalls denke ich das. :roll:

Kann mir jemand (erstmal) helfen einen richtigen Ansatz zum Speichern zu finden? Stehe da total auf dem Schlauch. :?



Gruß
Robert


Moderiert von user profile iconKha: Topic aus Algorithmen, Optimierung und Assembler verschoben am Do 25.11.2010 um 18:43


Ralf Jansen - Do 25.11.10 19:43

Die Daten die du in den Controls anzeigst hast du natürlich in ein paar entsprechenden Datenklassen(aka Model) abgelegt um damit sauber in deiner Anwendung arbeiten zu können. Diese kannst du einfach mit einem Serializer aus dem Framework wie z.B. dem XMLSerializer [http://msdn.microsoft.com/de-de/library/system.xml.serialization.xmlserializer.aspx] auf die Platte speichern und natürlich auch wieder lesen.

Edit: Ignorieren. Ich dachte es wäre eine C# Frage. Der Ansatz ein von der UI unabhängiges Datenmodell zu haben wird dir aber in Delphi genauso helfen.


TheNeon - Do 25.11.10 20:02

Danke fürs Verschieben.

C# war schon richtig, hatte noch "Delphi2009" in meinen Benutzerangaben stehen - Relikt aus alten Zeiten.

Also so wie ich verstehe meinst du, dass ich die Komponenten als solche einfach abspeichern kann. Okay, das würde so funktionieren, doch wie schaut es aus wenn ich Änderungen machen möchte? Die werden durch das laden doch stets überschrieben ... bzw. ich müsste alle Änderungen im Quellcode unterbringen und zwar nach dem Laden, richtig?


Ralf Jansen - Do 25.11.10 20:16

Zitat:
Okay, das würde so funktionieren, doch wie schaut es aus wenn ich Änderungen machen möchte?


Sprichst du jetzt von Datenänderungen? Dann geht das natürlich ohne Codeänderungen. Daten von Platte deserialisieren, Daten im Modell ändern, Daten wieder serialisieren.
Oder redest du jetzt von einer Strukturänderung der Daten bzw. sonstiger Logikänderung im Programm? Dann kommst natürlich darauf an was für Änderungen du gedenkst vorzunehmen.


TheNeon - Fr 26.11.10 18:20

:shock: Wow ... schalt bitte einen Gang runter :wink: Ich verstehe grad Bahnhof...

Also ich meinte jetzt so simple Sachen wie z.B. das Ändern der Schriftart für diese Komponente(n).

Weil so wie ich dich verstanden habe, speichere und lade ich nicht nur die Daten als solche, sondern die Komponente als Ganzes mit allen Daten.
Bin in dieser objektorientierten Sache mit Klassen und so ein sehr unbedarftes Baby, also bitte nicht zu viel erwarten. :(