Tokenize oder alternative?
- 
					
					
					
					
 Hi, ich dachte mir es wäre gut Tokenize auf einen CString anzuwenden, 
 aber wie ich jetzt sehe, wird quasi jedes Zeichen als "Trenner" verwendet.CString Inhalt = "abc-test<br>Hello<br>Welt!"; resToken=inhalt.Tokenize("<br>",curPos);Ich wollte als Ergebnis folgendes erhalten: 
 abc-test, Hello und Welt.Das <br> war also als Trennzeichen gedacht. 
 Ich sehe jetzt aber, dass mir "a", "c-test", "Hello" und Welt
 zurückgegeben werden.
 Er trennt also bei jedem Zeichen ("<" oder "b" oder "r" oder ">") den String ab.Kann man Tokenize hier irgendwie austricksen, oder muss ich meine Funktionen 
 überdenken?
 
- 
					
					
					
					
 Nimm doch einfach CString::Find... 
 So schwer ist es auch nicht dann eine Schleife zu bauen.Oder (wenn Du zu faul bist es selbst zu schreiben und Performance keine Rolle spielt) nimm CString:Replace... tausche <br> in \t und nimm dann Tokenize... 
 
- 
					
					
					
					
 Nötigenfalls schreibst du dir einfach einen eigenen Tokenizer. Ist wirklich einfach, wenn man weiß was zu tun ist. Auf Basis von std::string oder char* geht das recht fix. Eine ordentliche ANSI-C-Implementierung dürfte sogar relativ schnell sein. 
 
- 
					
					
					
					
 ... 
 
- 
					
					
					
					
 Eines der Nachteile von MFC, das Teil wird nicht gut weiterentwickelt. Ergebnis: man muss sich vieles selber zusammenbauen bzw. andere Bibliotheken einbinden. 
 Bei anderen Toolkits (Qt, wx) werden auch solche Standard-Klassen wie String immer wieder um neue Funktionen ergänzt. Die String-Klasse hat bei Qt Funktionen wie ::split und ::join, die auch so funktionieren, wie der Threadersteller das will und noch viel mehr. MS hat CString doch bestimmt 20 Jahre unverändert so belassen.Nun zum Problem  
 Google mal nach: cstring tokenize codeproject
 Da wirst du Lösungen finden...
 
- 
					
					
					
					
 Softwaremaker schrieb: MS hat CString doch bestimmt 20 Jahre unverändert so belassen. Nein! CString wurde gravierend umgebaut von einer normalen Klasse auf ein Template. Ich glaube das war in VC-2005. Hier wurden auch Funktionen erweitert und viel standardisiert. Aber seit dem ist glaube ich nichts mehr an CString passiert. 
 
- 
					
					
					
					
 Hallo, mach mal so: #define SPLIT "<br>"; CString txt("111111<br>2222222<br>333333<br>444444"),sub; for(int i=0; AfxExtractSubString(sub,txtitem,i,SPLIT); i++) { sub.Replace(SPLIT,""); TRACE("%s\r\n",sub); }
 
 
			
			
		 
			
			
		