Dateien erstellen/speichern
-
Ich habe eine Frage. Und zwar, wie speichere ich einen String oder andere Variablen in eine Datei? Es wird von der Textbox der String eingelesen. In C++ macht man das ja normalerweiße mit ofstream oder fstream. Danke für Antworten.
-
Wenn Du was komplexeres abspeichern willst, rate ich Dir zum XmlSerializer, der macht ohne Aufwand alles was Du willst (speichert/liest eine ganze Klassen ab/ein).
Sonst "System::IO::StreamWriter/StreamReader"
-
Danke doch kannst du mir bitte noch erlären wie man das einsetzt? Danke
-
Eigentlich sind in der Hilfe genügend Beispiele dabei... oder auf codeproject.com
http://msdn2.microsoft.com/de-de/library/system.xml.serialization.xmlserializer.aspx
http://msdn2.microsoft.com/de-de/library/system.xml.serialization.xmlserializer.serialize.aspx
-
Danke doch ich meinte eigentlich den StreamWriter. Da der andere zu kompliziert ist für mich...
-
Es hat sich erledigt ich nehme einfach WriteAllText und ReadAllText... Danke trotzdem. Tee
-
Das ist eigentlich garnicht kompliziert. Genauer gesagt gerade mal 10 Zeilen für den XML Import/Export. Das schöne ist, alle deine Variablen werden dabei automatisch erfasst, bidirektional. In meinem Falle benutze ich ein ToolStripMenu und den open/saveFileDialog. Alternativ kannst du natürlich auch einfach "String Filename" benutzen.
System::Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) { System::IO::TextReader^ tr = gcnew System::IO::StreamReader(openFileDialog1->FileName); XmlSerializer^ deserializer = gcnew XmlSerializer( Daten::typeid ); x = dynamic_cast<Daten^>(deserializer->Deserialize(tr)); tr->Close(); } } System::Void saveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { if(saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) { System::IO::TextWriter^ tw = gcnew System::IO::StreamWriter(saveFileDialog1->FileName); XmlSerializer^ serializer = gcnew XmlSerializer( Daten::typeid ); serializer->Serialize( tw, x ); tw->Close(); } }
Eines hab ich nur noch nicht rausbekommen, evtl. steh ich da auf der Leitung. wie (de)serialisiere ich mehrere Klassen auf einmal in eine Datei?
-
Hi pocketom,
...wenn ich den quelltext jetzt kopiere und in meiner Form die "open" und "save" Dialoge erstell kommt eine felhlermeldung...
muss ich da noch irgendwie was angeben? also praktisch "Was" er "Wo" speichern und öffnen soll?
THX für die Hilfe,
chips
-
Poste mal die Fehlermeldung, so wird Dir keiner helfen können.
-
Kompilieren...
editor.cpp
error C2065: 'XmlSerializer': nichtdeklarierter Bezeichner
error C2065: 'deserializer': nichtdeklarierter Bezeichner
error C2061: Syntaxfehler: Bezeichner 'XmlSerializer'
error C2653: 'Daten': Keine Klasse oder Namespace
fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.....
Das zeigt er dann an...
-
hi, dir fehlt da natürlich noch was:
#include "DataIO.h" #using <System.Xml.dll> #using <System.dll> namespace Yournamespace { // Standard Windows Forms namespaces using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::IO; //user defined namespaces //XML-Serializer using namespace System::Xml; using namespace System::Xml::Serialization;
-
Als was ist x definiert??
-
Ich wollte mein komplettes Form abspeichern.