Entwickler-Ecke

IO, XML und Registry - Problem mit Speichern in eine Textdatei in C#


karina2390 - Mo 10.11.08 18:44
Titel: Problem mit Speichern in eine Textdatei in C#
Hallo
Ich habe ein kleines Problem. Ich habe in C# einen SaveDialog einegerichtet und die Daten, die gespeichert werden sollen stehen in mehreren Textboxen. Wenn ich dann auf speichern klicke, speichert es immer nur die Daten aus der letzten Textbox. Wie kann ich das ändern?

Ich bitte um eure Hilfe.

liebe Grüße
Karina


Christian S. - Mo 10.11.08 18:47

Wie speicherst Du die Daten denn? :gruebel:

Da gibt's viele Möglichkeiten, aber Du scheinst Dich ja schon für eine entschieden zu haben.


karina2390 - Mo 10.11.08 18:56

ich speichere die Daten in eine Textdatei.

Das ist die Erste Codezeile:

C#-Quelltext
1:
2:
                datei = saveFileDialog.FileName;
                File.WriteAllText(datei, tBEName.Text, Encoding.UTF7);


Und das die letzte:

C#-Quelltext
1:
2:
                datei10 = saveFileDialog.FileName;
                File.WriteAllText(datei8, tbZVerwendung3 .Text, Encoding.UTF7);


und im FrmLoad habe ich noch:

C#-Quelltext
1:
2:
3:
            saveFileDialog.DefaultExt = "txt";
            saveFileDialog.FileName = "Daten.txt";
            saveFileDialog.AddExtension = true;


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


JüTho - Mo 10.11.08 19:09

Das war wohl ein Missverständnis.

Wenn Du auf "Speichern" drückst, sollen mehrere Vorgänge ausgeführt werden. Wo und wie steuerst Du das denn? Nach Deiner Problembeschreibung wird nur einer dieser Vorgänge erledigt. An dieser Stelle gibt es offensichtlich einen Denkfehler.

Gruß Jürgen


karina2390 - Di 11.11.08 08:08

Wenn ich auf einen Button klicke dann sollen alle Daten in den Textboxen in eine Textdatei gespeichert werden. Ich habe dann eine if-Anweisung gemacht und dann die oben geschriebenen Datensätze eingefügt.

Ich weis jetzt nicht, wo mein Fehler liegen könnte.


JüTho - Di 11.11.08 09:51

user profile iconkarina2390 hat folgendes geschrieben Zum zitierten Posting springen:
Ich weis jetzt nicht, wo mein Fehler liegen könnte.

Ich auch nicht. Du musst uns wohl den kompletten EventHandler für ButtonClick angeben.

user profile iconkarina2390 hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich auf einen Button klicke dann sollen alle Daten in den Textboxen in eine Textdatei gespeichert werden.

Alle Daten zusammen in eine gemeinsame Textdatei? Oder jede Textbox in eine separate Textdatei? Da gehen Deine bisherigen Informationen durcheinander.

user profile iconkarina2390 hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe dann eine if-Anweisung gemacht und dann die oben geschriebenen Datensätze eingefügt.

Ich sehe keine if-Abfrage und auch keine Datensätze, nur TextBox.Text und Dateien bzw. Dateinamen.

Vielleicht solltest Du uns auch ein Beispiel geben, wie der Inhalt einer Textdatei aussehen soll. Handelt es sich eigentlich um Multiline-Textboxen oder nicht?

Jürgen


Th69 - Di 11.11.08 10:15

Du speicherst zwar die Daten in die gleiche Textdatei (obwohl du jeweils unterschiedliche Variablennamen dafür benutzt, das nicht nötig ist -), jedoch überschreibt die Methode File.WriteAllText immer wieder den vorherigen Inhalt.

Die richtige Lösung wäre entweder den Dateiinhalt als String selber zusammenbauen und dann alles einmalig mittels File.WriteAllText() wegzuschreiben
oder
aber File.AppendAllText() verwenden
oder
aber File.CreateText() aufrufen und dann mit den StreamWriter-Methoden (z.B. Write oder WriteLine) die einzelnen Texte hineinschreiben.

Am besten du schaust dir mal die Hilfe in der MSDN zu den Klassen File, FileStream, StreamReader und StreamWriter etc. an. Dort stehen dann unter "Aufgabe" zahlreiche Beispiele zum Erstellen, Lesen und Schreiben von Textdateien.