da ich mich seit wenigen Tagen mit C# beschäftige, wollte ich ein wenig rumprobieren mit den Lesen und Schreiben von XML-Dateien. Dafür habe
ich ein kleiner Projekt angelegt, hier der Quellcode:
PHP Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace nostale
{
class Program
{
static void Main(string[] args)
{
Console.Title = "NosTale Gold";
string befehl = "";
while (befehl != "/exit")
{
#region einstellungen
string input;
int zahl, ergebnis;
XmlReader reader = XmlReader.Create(@"C:\Users\Jonas\Desktop\gold.xml");
reader.ReadStartElement("Gold");
reader.ReadStartElement("ic");
string ic = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("drop");
string drop = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("npc");
string npc = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("player");
string player = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("reward");
string reward = reader.ReadString();
reader.ReadEndElement();
reader.ReadStartElement("all");
string all = reader.ReadString();
reader.ReadEndElement();
reader.Close();
#endregion
#region goldanzahl
DateTime Zeit = DateTime.Now;
Zeit.ToString("yyyy-MM-dd_HH:mm:ss");
Console.WriteLine("Letzte Aenderung:");
Console.WriteLine(Zeit);
Console.WriteLine("");
Console.WriteLine("************************************************************");
Console.WriteLine("");
Console.WriteLine("Instant Combat : {0} Gold", ic);
Console.WriteLine("Gesammelt : {0} Gold", drop);
Console.WriteLine("Verkauft an NPC : {0} Gold", npc);
Console.WriteLine("Verkauft an Spieler : {0} Gold", player);
Console.WriteLine("Quest/Ts Belohnung : {0} Gold", reward);
Console.WriteLine("___________________________________________________________");
Console.WriteLine("Gesamt : {0} Gold", all);
Console.WriteLine("___________________________________________________________");
Console.WriteLine("");
befehl = Console.ReadLine();
#endregion
#region befehle
switch (befehl)
{
case "/ic":
Console.WriteLine("Wie viel?");
input = Console.ReadLine();
zahl = Convert.ToInt32(input);
ergebnis = Convert.ToInt32(ic) + zahl;
/* Und das Ergebnis soll in der XML-Datei aktualisiert werden
Also soll es dann so aussehen: <ic>ergebnis</ic>
das gleiche bei den anderen auch*/
break;
case "/drop":
Console.WriteLine("Wie viel?");
input = Console.ReadLine();
zahl = Convert.ToInt32(input);
ergebnis = Convert.ToInt32(drop) + zahl;
break;
case "/npc":
Console.WriteLine("Wie viel?");
input = Console.ReadLine();
zahl = Convert.ToInt32(input);
ergebnis = Convert.ToInt32(npc) + zahl;
break;
case "/player":
Console.WriteLine("Wie viel?");
input = Console.ReadLine();
zahl = Convert.ToInt32(input);
ergebnis = Convert.ToInt32(player) + zahl;
break;
case "/reward":
Console.WriteLine("Wie viel?");
input = Console.ReadLine();
zahl = Convert.ToInt32(input);
ergebnis = Convert.ToInt32(reward) + zahl;
break;
case "/all":
Console.WriteLine("Wie viel?");
input = Console.ReadLine();
zahl = Convert.ToInt32(input);
ergebnis = Convert.ToInt32(all) + zahl;
break;
}
#endregion
Console.Clear();
}
}
}
}
Jou, ich will die Datei nicht immer neu schreiben lassen, sondern nur den Wert ersetzen. Hat da jmd. eine Idee, wie ich das hinbekommen könnte?Quote:
/* Und das Ergebnis soll in der XML-Datei aktualisiert werden
Also soll es dann so aussehen: <ic>ergebnis</ic> das gleiche bei den anderen auch*/