String Error

Ok es geht. Könntest du mir vieleicht auch noch sagen wie ich in der Chars.xml
"<char name="Test" id="5" />"diesen eintrag löschen könnte wenn diese ID verlangt wird.

Der volle eintrag sieht so aus:

<chars>
<charlist account="2">
<char name="asdasd" id="1" />
<char name="dassdawre" id="2" />
<char name="asdrtzzuu" id="3" />
<char name="guiogou" id="4" />
" <char name="Test" id="5" /> " der soll gelöscht werden, wenn nach der ID 5 gefragt wird
</charlist>
</chars>
 
könnte mir mal jemand sagen wie man den eintag löscht den ich da oben geschrieben habe. Denn ich finde nichts wie man das machen könnte.
 
Da musst du schon den XML-Inhalt parsen (also Tag für Tag zerlegen). Dadurch kannst du dann den Eintrag erkennen.

Das eigentliche Löschen geht nur indirekt: Alles einlesen, und alles was nicht gelöscht werden soll, in eine temporäre Datei schreiben. Ist alles geschrieben, die Originaldatei löschen und die temporäre umbennen.

Wenn du alles auf einmal in den Speicher liest, kannst du dir das temporäre-Datei-Schreiben-und-Umbennen sparen.
 
Mhh also

std::string path = "database\\playerchars";
path += "\\";
char szTemp[200];
wsprintf( szTemp, "%u", charID );
path += szTemp;
path += ".xml";

dies löscht ja die CharID.xml, kommt drauf an welche zahl das ist

und ich möchte jetzt das er gleichzeitig auch noch in der chars.xml wenn CharID bsp 5 ist gelöscht wird

<chars>
<charlist account="2">
<char name="asdasd" id="1" />
<char name="dassdawre" id="2" />
<char name="asdrtzzuu" id="3" />
<char name="guiogou" id="4" />
" <char name="Test" id="5" /> " der soll gelöscht werden, wenn nach der ID 5 gefragt wird
</charlist>
</chars>

also muss der eintrag " <char name="Test" id="5" /> " gelöscht werden aber wie schaffe ich das. Die Chars.xml ist im ordner "database";
Mhh und wie mache ich das in ein temporäre Datei schreiben.
 
Eine temporäre Datei wäre nur eine Datei mit einem noch nicht benutzten Dateinamen.

Du öffnest die chars.xml zum Lesen, die temporäre Datei (hurz.tmp oder irgendetwas) zum Schreiben.
Dann liest du Zeile für Zeile aus chars.xml. Wenn die Zeile NICHT diejenige ist, die raussoll (da musst du den Inhalt der Zeile zerlegen und auf die id prüfen), schreibst du die Zeile in die temporäre Datei.
Wenn das durch ist, beide Dateien schliessen.
Dann Original-chars.xml löschen und die temporäre Datei nach chars.xml umbenennen.
 

Neue Beiträge

Zurück