1. #1

    Registriert seit
    12.12.2012
    Beiträge
    180
    Thanked 55 Times in 41 Posts

    Standard Daten Serialisieren und Deserialisieren

    Hallo,

    Also Ich arbeite an ein kleinen Tool für persöhnliche Daten(Name,Nachname,Strasse & so weiter) & Ich würde das ganze gerne Abspeichern und wieder Laden können.

    Ich habe mehrere Richtextboxen & 2 Buttons(Speichern & Laden) Ich hab mir ein Tutorial angeguckt dazu & bin soweit gekommen das ich den Inhalt der Richtextboxen in eine XML Datei speichern kann

    Code:

    Code:
          private void button7_Click(object sender, EventArgs e)
            {
                XmlTextWriter xwriter = new XmlTextWriter("savefile.xml", Encoding.Unicode);
                xwriter.WriteStartDocument();
                xwriter.WriteStartElement("XMLFILE");
    
                xwriter.WriteStartElement("Title");
                xwriter.WriteString(richTextBox8.Text);
                xwriter.WriteString(richTextBox2.Text);
                xwriter.WriteEndElement();
    
                foreach (String item in listBox1.Items)
                {
                    xwriter.WriteStartElement("Item");
                    xwriter.WriteString(item);
                    xwriter.WriteEndElement();
                }
    
                xwriter.WriteEndElement();
                xwriter.WriteEndDocument();
                xwriter.Close();
            }
    Drücke ich auf Speichern (Inhalt: RichTextBox8 = Hallo, RichTextBox2 = Tschüss) wird das ganze so abgespeichert

    Code:
    <?xml version="1.0" encoding="UTF-16"?>
    
    -<XMLFILE>
    
    <Title>Hallo Tschüss</Title>
    
    </XMLFILE>
    Ich würde gerne das ganze etwas Strukturierter abgespeichert wird z.B so

    Code:
    <?xml version="1.0" encoding="UTF-16"?>
    
    -<XMLFILE>
    
    <Title></Title>
    <richTextBox8>Hallo</richTextBox8>
    <richTextBox2>Tschüss</richTextBox>
    </XMLFILE>
    wie setze ich das um :?

    Und dann würde Ich noch gerne wissen, Wie Lade ich die gespeicherte XML datei in mein Programm? so das z,B der gespeicherte Inhalt Hallo & Tschüss in der rTextBox8 & 2 angezeigt wird.

  2. #2

    Registriert seit
    09.11.2011
    Beiträge
    121
    Thanked 129 Times in 46 Posts

    Standard AW: Serialiesieren und DeSerialisieren

    Zu deinem ersten Problem:
    Code:
                xwriter.WriteStartElement("Title");
                xwriter.WriteString(richTextBox8.Text);
                xwriter.WriteString(richTextBox2.Text);
                xwriter.WriteEndElement();
    Ergebnis:
    Code:
    <Title>Hallo Tschüss</Title>
    Demzufolge:
    Code:
                xwriter.WriteStartElement("richTextBox8");
                xwriter.WriteString(richTextBox8.Text);
                xwriter.WriteEndElement();
    Ergebnis:
    Code:
    <richTextBox8>Hallo</richTextBox8>
    (ebenso bei richTextBox2)

    Dein zweites Problem, nämlich eine XML-Datei lesen: C# XmlTextReader Type

    MfG

  3. #3
    Avatar von Sky.NET
    Registriert seit
    26.11.2011
    Beiträge
    2.462
    Thanked 2.717 Times in 1.286 Posts
    Blog Entries
    7

    Standard AW: Serialiesieren und DeSerialisieren

    Oh nein, bitte nicht so... das ganze (unsaubere) Gebastel kannst du dir sparen!

    Das folgende bitte erstmal zum Verständnis in einem Testprojekt ausprobieren:

    Leg dir ne Klasse 'User' oder 'Contact' oder so an, da hauste dann alle Dinge die gespeichert werden sollen als Propertys rein.
    Erstell ne neue Instanz, halt mit "new Contact(name, vorname, blah, usw.);" oder "Contact c = new Contact(); c.Name = "blah"; ... usw."

    Anschließend guckst du dir folgenden Code an:
       XmlSerializer xmls = new XmlSerializer(typeof(Contact));
    StreamWriter sw = new StreamWriter(c.Name+".xml");
    xmls.Serialize(sw, c);
    sw.Close();


    Damit kannst du deine Klasseninstanz mit nur 4 Zeilen Code speichern.

    Auslesen geht ebenfalls mit 4 Zeilen Code:

       XmlSerializer xmls= new XmlSerializer(typeof(Contact));
    TextReader tr = new StreamReader(c.Name+".xml");
    Contact loadedContact = (Contact)deserializer.Deserialize(tr);
    tr.Close();


    Gerade wegen sowas ist das .NET-Framework EXTREM hilfreich, weil wirklich viele Sachen schon irgendwo drin stecken, die man fast immer irgendwann mal braucht.
    Java:
    Spoiler:

    Lustige Quotes:
    Spoiler:
    Zitat Zitat von Hydra Beitrag anzeigen
    Hier (in Deutschland) kann man keine andere tolle Aktivitäten machen, als zu chillen, shoppen, saufen und Partys feiern xD Ich habe nichts gegen ab und zu mal saufen und Partys feiern, aber das ist doch nicht wirklich das wahre Leben o_o
    Wieso das Internet für die meisten Leute gefährlich ist:
    Zitat Zitat von Silent Beitrag anzeigen
    Ich weiß ja nicht was der Sinn dahinter steckt es heißt immer "security reasons".

  4. The Following User Says Thank You to Sky.NET For This Useful Post:

    DMW007 (30.08.2014)

Ähnliche Themen

  1. Wie sichere ich meine Daten?
    Von Essah im Forum Security
    Antworten: 16
    Letzter Beitrag: 11.01.2014, 23:02
  2. Battlefield 4 Beta Daten
    Von colasuchti im Forum Gaming-News
    Antworten: 11
    Letzter Beitrag: 23.10.2013, 17:10
  3. Was mit RL-Daten von VA tun?
    Von IceNet im Forum Fragen & Probleme
    Antworten: 11
    Letzter Beitrag: 26.07.2013, 09:37
  4. Daten auf Handy sichern?
    Von Visorx im Forum Mobilgeräte
    Antworten: 4
    Letzter Beitrag: 02.01.2012, 19:04
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.