P
@ Doug_HH: OK das mit der Eigeninitiative verstehe ich schon.
Leider komme ich irgendwie nicht mit der score-Datei zurecht und versuche daher nun, alles komplett neu zu programmieren (mit einer XML Datei).
Die Werte, die ich eingebe, werden wunderbar über den Speichern Button gesichert.
Die XML Datei sieht von der Struktur her auch fehlerfrei aus.
Nur das Laden bereitet mir Kopfschmerzen.
Wie bekomme ich die Werte in die einzelnen Textboxen geschrieben, wenn ich auf den Laden Button klicke?
Hier mal mein Quelltext:
{
InitializeComponent();
//
//TODO: Konstruktorcode hier hinzufügen.
//
//den Dateinamen für die XML-Datei setzen
xmlDateiname = IO::Path::ChangeExtension(Application::ExecutablePath, ".xml");
}
//speichert die Einstellungen
Void schreibeEinstellungen() {
//die Einstellungen setzen
XmlWriterSettings ^einstellungen = gcnew XmlWriterSettings;
einstellungen->Indent = true;
//eine Instanz für XmlWriter erzeugen
XmlWriter ^xmlSchreiben = XmlWriter::Create(xmlDateiname, einstellungen);
//die Deklaration schreiben
xmlSchreiben->WriteStartDocument();
//den Wurzelknoten pong erzeugen
xmlSchreiben->WriteStartElement("pong");
//den Knoten groesse erzeugen
xmlSchreiben->WriteStartElement("ergebnis");
//die Einträge schreiben
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox1->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox2->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox3->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox4->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox5->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox6->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox7->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox8->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox9->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox10->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox11->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox12->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox13->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox14->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox15->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox16->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox17->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox18->Text));
xmlSchreiben->WriteElementString("punkte", Convert::ToString(textBox19->Text));
xmlSchreiben->WriteElementString("name", Convert::ToString(textBox20->Text));
//den Knoten abschließen
xmlSchreiben->WriteEndElement();
//alle abschließen
xmlSchreiben->WriteEndDocument();
//Datei schließen
xmlSchreiben->Close();
}
//liest die Einstellungen
Void leseEinstellungen() {
//gibt es die Datei?
if (IO::File::Exists(xmlDateiname) == false)
return;
//eine Instanz von XmlReader erzeugen
XmlReader ^xmlLesen = XmlReader::Create(xmlDateiname);
//die Daten lesen und zuweisen
xmlLesen->ReadToFollowing("punkte", textBox1->Text);
xmlPunkte = Convert::ToInt32(xmlLesen->ReadElementString());
xmlLesen->ReadToFollowing("name", textBox2->Text);
//die Datei wieder schließen
xmlLesen->Close();
}
protected:
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
//für den Namen der XML-Datei
String ^xmlDateiname;
//für die Punkte und Namen des Editors
Int32 xmlPunkte;
String ^xmlName;
private: System::Void buttonLesen_Click(System::Object^ sender, System::EventArgs^ e) {
leseEinstellungen();
}
private: System::Void buttonSpeichern_Click(System::Object^ sender, System::EventArgs^ e) {
schreibeEinstellungen();
}
private: System::Void buttonBeenden_Click(System::Object^ sender, System::EventArgs^ e) {
Close();
}