Daten speichern
-
Hallo,
ich habe ein Programm geschrieben wo man diverse Einstellungen vornehmen kann (mit RadioBoxen etc.) und eine Art Counter die Zählt wie oft man z.B einen Button drückt. Wenn ich das Prog. schließe gehen alle Einstellungen verloren und der Zähler fängt von 0 wieder an (is ja logisch :D) Gibt es eine Möglichkeit die Einstellungen zuspeichern?
Dankeeeee
-
Ich empfehle dazu eine eigene Klasse anzulegen und diese via XMLSerializer rauszuschreiben / einzulesen.
-
und wie macht man das *g*? Habe eigentlich nicht so etwas kompliziertes vor. (Mir würde schon reichen wenn man die Einstellungen in einer .txt speichert und ausließt
:D)
-
Das ist ganz einfach
using namespace System; namespace MyApp { public ref class MySettings { public: int MyInt1; String ^MyString1; // Beliebig erweiterbar... static MySettings ^Load(String ^fileName) { System::IO::StreamReader f(fileName); System::Xml::Serialization::XmlSerializer ser(MySettings::typeid); return (MySettings^) ser.Deserialize(%f); } void Save(String ^fileName) { System::IO::StreamWriter f(fileName); System::Xml::Serialization::XmlSerializer ser(this->GetType()); ser.Serialize(%f, this); } }; } int main(array<String ^> ^args) { MyApp::MySettings ^settings; String ^fn = "c:\\test.txt"; if (System::IO::File::Exists(fn)) settings = MyApp::MySettings::Load(fn); else settings = gcnew MyApp::MySettings(); settings->Save(fn); return 0; }
Glaub mir: Alles andere ist schwieriger
-
soll das in eine extra Datei oder in meine Form1.h? xD
-
Ich würde es (nur die Klasse) in eine eigene Datei (h-Datei) schreiben. Diese dann in die Form-Datei includieren.
In dem Form kannst Du dann z.B. bei "OnLoaded" die Settings einlesen und entsprechend setzen... bei OnClosing (o.s.ä.) kannst Du die Einstellungen speichern (das was jetzt Beispielhaft im "main" gemacht wird).
-
Funktioniert Danke!