Zahlen löschen mit HIlfe von Konsolenanwendung

killtweety

Grünschnabel
Hallo,

ich habe eineTextdatei (xml) in der unter anderem folgendes steht:

<name1>
</name1>
<name2>
</name2>

Nun würd ich gerne mit hilfe von Visual (per konsolenandwendung) die Zahlen !und nur diese Zahlen! herauslöschen.

Hab leider keinen Plan wie ich das machen soll.

Danke
 
Zuletzt bearbeitet:
Datei komplett lesen. Dann alles wieder auf die Platte schreiben (alte Datei überschreiben), wobei du die Zahlen weglässt. Fertig!
 
Alle Daten einzulesen ist kein Problem, auch nicht sie im Dos-Fenster anzeigen zu lassen. Mein Problem besteht hauptsächlich darin, diese Zahlen die automatisch hinzugefügt wurden loszuwerden.
Ich hatte da an ne art if-Abfrage gedacht oder replace.
Jedoch will das bei mir nicht funktionieren.
Wäre nett wenn jemand nen Code hier posten könnte mit dem es funktinieren sollte.
Danke schonmal
 
Im Prinzip geht das so.
Code:
   char szSource[256] = "</name1>abcdefgh\n</name234>ktriuwjw\n";
   char szDest[256] = "";
   long len = strlen(szSource);
   for(long i = 0, j = 0; i < len; i++)
   {
	  if(szSource[i] == '<')
	  {  // found start
		 for( ; i < len; i++)
		 {
			if(!isdigit(szSource[i]))
			   szDest[j++] = szSource[i];
			 if(szSource[i] == '>')
				break;  // reached end
		 }
	  }
	  else
		 szDest[j++] = szSource[i];
   }
   szDest[j] = '\0'; // terminating 0
Du musst anstelle von szSource von File lesen, und die Endebedingung ist nicht len sondern EOF des File.
Das ist hier eine einfache Routine, die nicht auf irgendwelche Spezialitäten ausgerichtet ist.
Wenn bspw. dein Name selbst auch Ziffern enthalten kann musst du zuerst nach dem Ende (>) suchen und dann von dort aus rückwärts die Ziffern entfernen.
Oder wenn andere Tokens in spitzen Klammern vorkommen, bei denen du nicht die Ziffern entfernen willst, musst du natürlich etwas mehr Intelligenz in die Routine stecken. Und ....

Für szDest solltest du ein temporäres File verwenden und das am Ende in das originale File kopieren.
 
Zurück