Cstring Tokenize
-
Hallo,
ich habe einen String der mehrere Parameter mit "%" trennt (das ist ein komische Folge, damit man den Nutzer nur sehr geringfügig einschränkt).Nun will ich die Parameter herausbekommen.
Für diesen Zweck habe ich folgende Funktion gefunden:
QuellString.Tokenize("$%$",position);
Leider sieht er "%" nicht als ein Suchwort an, sondern als 3 verschiedene Trenn-Symbole. Das heißt, "30%Teil" wird zu "30" und "Teil", was aber nicht gewollt ist.
Wie kann ich der Funktion Tokenize klar machen, dass "%" zusammen gehört?
Danke
-
CString ist Teil der MFC oder ATL. Hier ist aber C# bzw. .NET - Du bist also im falschen Forum, besser wäre hier: http://www.c-plusplus.net/forum/f1
Edit:
Doku zur Funktion: http://www.c-plusplus.net/forum/p2054566#2054566
-
oh, da hab ich mich im Forum verklickt.
Tut mir leid.Könnte es bitte wer verschieben? Danke
-
Dieser Thread wurde von Moderator/in Dravere aus dem Forum C# und .NET in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Tokenize() interpretiert den übergebenen String als eine Liste an möglichen Trennzeichen, also bleiben dir nur zwei Möglichkeiten:
- du zerlegst den String von Hand mit Hilfe von Find() und Mid()
- du ersetzt dein Trennwort mit Replace() durch ein einzelnes Zeichen, das bislang noch nicht im String vorkam und lässt Tokenize() dann nach diesem Ersatzzeichen suchen
-
danke Dravere fürs verschieben
@CStoll
hm ok, gut danke. Dann überleg ich mir mal, was ich mache
-
Ich habe mich nun dazu entschieden, gleich von Anfang an ein anderes Trennzeichen zu nehmen, was man möglichst nicht selber eingeben kann.,
Deshalb habe ich mich dafür entschieden, es mit dem ASCII-Zeichen mit dem Wert 7 zu nehmen.Das einzige was nun komisch aussieht ist, wie ich das ASCII-Zeichen in einen CString speichere:
CString m_delimeter = ""; m_delimeter.AppendChar(7);
Ist das ASCII-Zeichen mit dem Wert 7 ok oder würdet ihr ein anderes nehmen?
Habt ihr eine schönere Methode diesen Wert in einen CString zu speichern?
-
*nachsieht* ASCII 7 ist das BEL - das kannst du auch einfacher erreichen per
m_delimiter="\a";
(und zur Not kannst du jedes Zeichen durch Hex-Escapes à "\x7" ausdrücken)
-
Ich verwende für solche Trennzeichen meistens \t, \n oder \r.