[C#] Text aus Textbox in XML-File schreiben?

Darkas

Erfahrenes Mitglied
Also ich gehe mal davon aus, dass du mehrere Downloads speichern willst. Dazu kannst du natürlich XML verwenden, dabei würde ich dir folgendes Schema empfehlen:
Code:
<downloads>
  <day date="[Das datum dass du in dein Kommentar geschrieben hast ohne das 'Downloads vom ']">
    <download name="[Dein Dateiname]" />
    <download name="[Deine nächste Datei]" />
  </day>
</downloads>

Somit kannst du mehrere downloads Speichern. Wie man Attribute mit einem XmlTextWriter erzeugt weiß ich nicht, bis jetzt habe ich immer nur mit XmlDocuments, XmlElements usw. gearbeitet, sollte aber kein Problem sein. Wenn du nur einen Download speichern wilst, dann schreibe kein Xml in deine Datei, sondern nimm am besten einfach System.IO.File.Write(); Damit kannst du plain text schreiben. Plain Text ist ein Text ohne weitere Formatierungen, also eine *.txt Datei, in der einfach nur Text steht.
Schau dazu am besten mal in die Wikipedia: Plain Text und XML. XML ist eigentlich auch nur Plain Text, weil du ja nichts Binär codierst oder sowas. Ich weiß ja nicht wie gut du dich mit Xml auskennst, aber du solltest vielleicht auch mal in die Xml Spezifikation reinschaun, wenn dich das Thema genauer interessiert (ich hab sie auch noch nicht gelesen, aber mittlerweile so viel damit gemacht, dass ich das eh schon alles weiß :) )
 

yellowspam

Erfahrenes Mitglied
Äh..ja eine Frage hätte ich da noch ^^,

Ich kann jetzt zwar den Text einer Textbox in ein Textfile schreiben, aber wenn ich den text in der Textbox lösche, neuen Text eingebe und auf den button klicke, wird der vorige Text in dem Textfile einfach überschrieben.

Wie kann ich verhindern dass der Text überschrieben wird und einfach unter em vorigen Text steht?
 

Darkas

Erfahrenes Mitglied
Also ich gehe mal davon aus, dass du mehrere Downloads speichern willst. Dazu kannst du natürlich XML verwenden, dabei würde ich dir folgendes Schema empfehlen:
Code:
<downloads>
  <day date="[Das datum dass du in dein Kommentar geschrieben hast ohne das 'Downloads vom ']">
    <download name="[Dein Dateiname]" />
    <download name="[Deine nächste Datei]" />
  </day>
</downloads>

Somit kannst du mehrere downloads Speichern. Wie man Attribute mit einem XmlTextWriter erzeugt weiß ich nicht, bis jetzt habe ich immer nur mit XmlDocuments, XmlElements usw. gearbeitet, sollte aber kein Problem sein. Wenn du nur einen Download speichern wilst, dann schreibe kein Xml in deine Datei, sondern nimm am besten einfach System.IO.File.Write(); Damit kannst du plain text schreiben. Plain Text ist ein Text ohne weitere Formatierungen, also eine *.txt Datei, in der einfach nur Text steht.
Schau dazu am besten mal in die Wikipedia: Plain Text und XML. XML ist eigentlich auch nur Plain Text, weil du ja nichts Binär codierst oder sowas. Ich weiß ja nicht wie gut du dich mit Xml auskennst, aber du solltest vielleicht auch mal in die Xml Spezifikation reinschaun, wenn dich das Thema genauer interessiert (ich hab sie auch noch nicht gelesen, aber mittlerweile so viel damit gemacht, dass ich das eh schon alles weiß :) )

Achja, und:
Nicht wirklich:( ,sry für meine Unwissenheit, ich bin grade mal 2 Monate als informatikerlehrling tätig ich weiß das leider (noch) nicht.:(
Na und, ich bin auch erst 9 Jahre als Schüler tätig, also sowas muss man doch echt wissen :)
 

yellowspam

Erfahrenes Mitglied
Danke erstmal für die vielen Tipps ^^

@Gross: Ich habe anstatt des filestreams einen string der den Speicherort enthält,wie soll ich da dann das machen?Und funktioniert es beim textWriter genauso wie beim XMLTextWriter?
 
Zuletzt bearbeitet:

Darkas

Erfahrenes Mitglied
Wo ist bei dem Code das Problem? Du hast ja ma Ende einen XmlTextWriter, und
Code:
@"c:\Pfad\blup.xml"
ersetzt du einfach durch deinen Dateinamen. Ich bevorzuge aber eher diesen Code:
C#:
XmlTextWriter objWriter = new XmlTextWriter(new FileStream(@"c:\Pfad\blup.xml", FileMode.Append), Encoding.Default);
Das sieht zwar leicht unübersichtlicher aus, aber du kannst dabei nicht auf den Stream zugreifen, das gibt weniger Fehlerquellen.
 
Zuletzt bearbeitet von einem Moderator:

yellowspam

Erfahrenes Mitglied
Wo ist bei dem Code das Problem? Du hast ja ma Ende einen XmlTextWriter, und
Code:
@"c:\Pfad\blup.xml"
ersetzt du einfach durch deinen Dateinamen.

Das weiß ich eh ^^

Aber kann man das auch mit einem Textfile machen? Oder geht die Methode die du mir gezeigt hast nur für Xml-files?
 
Zuletzt bearbeitet:

yellowspam

Erfahrenes Mitglied
Ich habe jetzt deine Methode ausprobiert,es funktioniert, aber ich habe immer noch diese XML-Tags drinnen. So sollte das File ausehen damit der DL-Manager sie lesen kann:




Aber wie kriege ich den Text in die gewünschte form und wie krieg ich die Tags weg?
 

Anhänge

  • Clip.jpg
    Clip.jpg
    31,8 KB · Aufrufe: 112

Darkas

Erfahrenes Mitglied
Wenn du so ein Ergebniss haben willst, warum nimmst du dann überhaupt Xml :confused:
Dazu nimmst du System.IO.File her, wenn mich nicht alles Täuscht gibt's da auch eine AppendLine Methode, oder du nimmst einfach Write und als FileMode Append. Damit lässt sich das viel einfacher bewerkstelligen.
 

yellowspam

Erfahrenes Mitglied
Darum habe ich ja auch die ganze zeit gefragt ob deine methode auch mit dem Textwriter funktioniert, weil ich bereits den ganzen Code auf Textfiles umgestellt habe.^^