Benutzereingaben speichern

Habe doch oben auch geschrieben, dass du die Daten über ein normales XMLDocument ändern und hinzufügen kannst *beleidigtsei* ;p

Fisch hat gesagt.:
Wenn ich die Konfigdatei so ändern kann, wäre ich eigentlich schon zufrieden. Kann ich in der Datei auch Array-Werte ablegen
sähe das dann so aus ?
<add key="settingName[0]" value="settingValue"/>
<add key="settingName[1]" value="settingValue"/>
<add key="settingName[2]" value="settingValue"/>
oder eher komplettes Array <add key="settingName" value="1,2,3,4,5,6"/>
Fisch

In dem Beispiel, das du gepostet hast sind alles String Werte (es ist ja eben 'nur' eine XML Datei :)) Die Werte kannst du natürlich nennen wie du willst (auch SettingName[0], Settingname[1], usw..). Gespeichert sind die Werte aber natürlich als einfacher Text.
Die andere Möglichkeit wäre zb mit

Code:
<add key="settingName" value="1,2,3,4,5,6"/>

Dieses könntest du dann eben, nachdem du es ausgelesen hast, mit der 'Split' Methode in ein Array umwandeln, indem du als Trennzeichen das Komma nimmst.
 
Wollte eigentlich keinen beleidigen,hatte das halt nicht direkt verstanden, aber ich denke so ungefähr hab ichs jetzt gechecked.
Werde es jedenfalls testen und danke Dir/Euch

Fisch
 
Zuletzt bearbeitet:
Hallo,

habe ein Problem, dass sobald ich einen Pfad speichern möchte, den ich mir vorher per OpenFileDialog() hole, so kann ich meine XML-Datei nicht speichern. Woran liegt das? Hat das was mit der Angabe des Encoding zu tun? Meine drei Werte hole ich mir jeweils aus einer Textbox und formatiere sie zu textBox.Text.

Code:
FileDialog dlg = new OpenFileDialog();
			dlg.CheckFileExists = false;
			dlg.CheckPathExists = true;
			dlg.DefaultExt = "mdb";
			dlg.FileName = "Sicherung.mdb";
			dlg.Filter = "Sicherung (*.mdb)|*.mdb";
			dlg.FilterIndex = 0;
			dlg.Title = "Wählen Sie ein Sicherungspfad";
			if(dlg.ShowDialog(this) != DialogResult.Cancel)
				textBox_pfad.Text = (dlg.FileName);

Code:
public void XMLSchreiber()
		{
			XmlTextWriter writer = null;

			try
			{  
				writer = new XmlTextWriter(filename, System.Text.Encoding.UTF8 );
				writer.Formatting = Formatting.Indented;
				writer.WriteStartDocument(true);
				writer.WriteStartElement("PROFILE");
				writer.WriteElementString("SERVER", server);
				writer.WriteElementString("DATENBANK", datenbank);
				writer.WriteElementString("PFAD", pfad);
				writer.WriteEndElement();
				writer.WriteEndDocument();
			}
			catch (Exception e)
			{
				MessageBox.Show("Fehler beim Schreiben der Backup.xml");
				MessageBox.Show(e.Message);
			}
			finally
			{
				if (writer!=null)
					writer.Close();
			}
		}

EDIT: Das Speichern meines Pfades funktioniert dann nicht mehr, wenn ich per OpenFileDialog den Pfad auswähle. Sobald ich das 1x gmeacht habe, kann ich den Wert aus meiner Textbox nicht mehr speichern bzw. in meine XML schreiben. Wenn ich aber, nachdem ich das Programm starte, kein OpenFileDialog aufrufe und in die die Texbox irgendetwas manuell reinschreiben, dann speichert er es mir. Ist der Writer buggy?
 
Zuletzt bearbeitet:
Habe den Fehler gefunden. Sobald man den Filedialog ausführt, muss ich zwingend den Application.StartupPath+"\\Meine.xml" angeben.
Das sieht dann wie folgt aus:

Code:
public void XMLSchreiber()
		{
			XmlTextWriter writer = null;

			try
			{  
				writer = new XmlTextWriter(Application.StartupPath + "\\" + filename, System.Text.Encoding.UTF8 );
				writer.Formatting = Formatting.Indented;
				writer.WriteStartDocument(true);
				writer.WriteStartElement("PROFILE");
				writer.WriteElementString("SERVER", server);
				writer.WriteElementString("DATENBANK", datenbank);
				writer.WriteElementString("PFAD", pfad);
				writer.WriteEndElement();
				writer.WriteEndDocument();
			}
			catch (Exception e)
			{
				MessageBox.Show("Fehler beim Schreiben der Backup.xml");
				MessageBox.Show(e.Message);
			}
			finally
			{
				if (writer!=null)
					writer.Close();
			}
		}
 
Zurück