Laden...

"Gefällt mir"-Count in XML speichern und lesen

Erstellt von Clank331 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.330 Views
C
Clank331 Themenstarter:in
2 Beiträge seit 2011
vor 12 Jahren
"Gefällt mir"-Count in XML speichern und lesen

Hey Leute,
ich habe ein problem ich komm auf XML Dateien mal garnicht klar.
Ich versuche die ganze Zeit, ein XML Datei auszulesen und zu ändern.

Ich will ein Gefällt Mir Button machen(LANGEWEILE)

Nun soll ich aber, das pogramm schließen können und neu öffenen, und die anzeige in dem "Label1" soll wieder auf den Aktuellen "Count" gesetzt werden.

//LADEN
Das programm liest den Count aus und soll den dann in mein Label wieder einfügen.

//SPEICHERN
Das programm soll bei jedem klick auf den button den wert um 1 erhöhen(Was ich weiß wie das geht 😄) und dann auch den COUNT um 1 erhöhen.

Nun meine Lösung:

So sieht momentan meine XML aus!


<?xml version="1.0" encoding="utf-8" ?>
<Counter>
  <Data Count="59" />
</Counter>

Nun der Code mit dem ich schreibe und Lese.

//LESEN


 //Die Variablen
        int count = 1;
        int all = 0;
        string a = DateTime.Now.ToShortDateString();

        public Form1()
        {
            InitializeComponent();
            try
            {

                XmlDocument doc = new XmlDocument();
                doc.Load(@"test.xml");
                XmlElement root = doc.DocumentElement;
                foreach (XmlNode @Data in root.ChildNodes)
                {
                    l_count.Text = @Data.Attributes["Count"].InnerText;
                    count = Convert.ToInt32(l_count.Text);
                }
//Ein Label was mir das datum Anzeigt.
                l_date.Text = DateTime.Now.ToLongDateString();
            }
            catch
            { }

        }

Dieser Kann aber nicht vorher das Datum auslesen und dann die passende COUNT Variable rauslesen.

//SPEICHERN


        private void Like_button_Click(object sender, EventArgs e)
        {
            all = count++;
            l_count.Text = all.ToString();


            XmlDocument doc = new XmlDocument();
            XmlNode myRoot, myNode;
            XmlAttribute myAttribute;


            myRoot = doc.CreateElement("Counter");
            doc.AppendChild(myRoot);

            myNode = doc.CreateElement("Data");

            myAttribute = doc.CreateAttribute("Count");
            myAttribute.InnerText =l_count.Text;

            myNode.Attributes.Append(myAttribute);

            myRoot.AppendChild(myNode);

            doc.Save(@"test.xml");

        }

So der speichert nicht das Datum mit.

So soll die XML Datei aussehen:


<?xml version="1.0" encoding="utf-8" ?>
<COUNTER>
  <Daten DATE ="29.10.2011" COUNT="50" />
  <Daten DATE ="30.10.2011" COUNT="20" />
  <Daten DATE ="31.10.2011" COUNT="30" />
</COUNTER>

Ich will das der das Datum ausliest und dann COUNT abliest.

Sagen wir wir haben den 30.10.2011 also steht dann im l_count(label) 20.
"Und sobald ich auf den button drücke erhöt sich die zahl in der XML und in dem l_count auch."
Das kann ich ja nur das Datum bekomme ich nicht hin.

Er soll auch selbständige wenn das datum nicht vorhanden ist eine weiter Zeile dazu schreiben.

Sagen wir ich starte das pogramm am 5.11.2011 neu und drücke 10 mal.


<?xml version="1.0" encoding="utf-8" ?>
<COUNTER>
  <Daten DATE ="29.10.2011" COUNT="50" />
  <Daten DATE ="30.10.2011" COUNT="20" />
  <Daten DATE ="31.10.2011" COUNT="30" />
  <Daten DATE ="5.11.2011" COUNT="10" />
</COUNTER>

Automatisch macht er das dazu.

Meine Lösung ist auch unten im Dateianhang zu finden.

FRAGE: Wie kann ich machen das das Datum mit in die Abfrage kommt. Erste datum abfragen mit dem Datum von heute abgleichen und dann den Count einfügen.

C
252 Beiträge seit 2007
vor 12 Jahren

Kannst du mal das komplette Projekt anhängen. In diesem fehlen einige Dateien.

C
Clank331 Themenstarter:in
2 Beiträge seit 2011
vor 12 Jahren

Ist angehängt.

verstehe zwar nicht warum du das braucht weil da nicht mehr drin steht als in meiner Frage aber egal.

Hinweis von gfoidl vor 12 Jahren

Projekte bitte direkt anhängen. Sollten sie zu groß sein, dann kannst du per PM ans Team das auch dem Team mitteilen und dieses hängt es dann an.

328 Beiträge seit 2006
vor 12 Jahren

...und ich frage mich, wo in Deinem unverständlichen Kauderwelsch die Frage versteckt ist?!? 😉

Robert Wachtel

http://blog.robertsoft.de

C
252 Beiträge seit 2007
vor 12 Jahren

Da ich heute nen guten Tag habe hab ich mal ein kleines Demo Projekt gemacht.
Es liest den aktuellen Eintrag aus dem XML aus. Erhöht dann den Count und speichert es wieder ab bzw erzeugt ein neues Node falls noch keines vorhanden ist.