Frage von fragenOfragen, 62

C# Frage zu SaveFileDialog und OpenFileDialog?

Ich versuche in WinForms einen Button so zu programmieren, dass ich die Werte aus der entsprechenden Listbox heraus in eine Datei speichern kann und diese mit einem zweiten Button wieder auslesen kann. Wie kann ich das mit SaveFileDialog und OpenFileDialog machen? LG fOf

Antwort
von CrystalixXx, 43

Die Dialoge übernehmen hauptsächlich den visuellen Teil für die Auswahl des Pfades. Das hat den Vorteil, dass du nicht selbst prüfen musst, ob der Dateipfad gültig ist.

Die Logik des Speicherns der Daten hingegen musst du selbst implementieren. Du könntest das über Serialisierung erledigen oder deine Daten durch Komma getrennt in eine einfache Datei schreiben oder in ein XML-Format übertragen oder ... Da gibt es viele Möglichkeiten. Welches Format du haben willst, musst du selbst entscheiden.

Kommentar von fragenOfragen ,

Ich würde es gerne fürn Anfang gerne in eine Text-Datei speichern.

Ich hab dutzende Anleitungen gefunden, wie man es in VB macht, aber keine einzige richtige für C# in Winforms...

LG

Kommentar von CrystalixXx ,

Ich hab's mal ganz quick'n'dirty zusammengeschrieben:

private void button1_Click(object sender, EventArgs e)
{
using (StreamWriter sw = new StreamWriter(@"D:\data.txt"))
{
foreach (string item in listBox1.Items)
{
sw.WriteLine(item);
}
}
}

private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();

using (StreamReader sr = new StreamReader(@"D:\data.txt"))
{
while (!sr.EndOfStream)
{
listBox1.Items.Add(sr.ReadLine());
}
}
}

So werden die einzelnen Items einer ListBox zeilenweise in eine Datei geschrieben und entsprechend wieder ausgelesen und der ListBox hinzugefügt.

PS: Den Pfad bekommst du über die FileName-Eigenschaft des jeweiligen Dialogs. Vergiß nicht den DialogResult des Dialogs abzufragen, damit dein Code nur bei "Ok" ausgeführt wird.

Antwort
von MisterRobot, 47

https://msdn.microsoft.com/de-de/library/sfezx97z%28v=vs.110%29.aspx

5 sek. Google und schon ne Antwort.

Wenn du schon C# programmierst, solltest du auch lernen mit der Doc umzugehen.

Kommentar von fragenOfragen ,

Supi, deswegen stelle ich ja ne Frage, weil ich mit den Ergebnissen aus Google soooooo super viel anfangen kann.

Keine passende Antwort gefunden?

Fragen Sie die Community