Bonjour,
Durant mon projet, j'aurais besoin de séparer une multistring (tableau de char, instauré par Microsoft, représentant plusieurs chaînes de caractères séparées par un caractère NULL, selon : "String1\0String2\0String3\00" [deux caractères NULL finaux]) en plusieurs strings. J'ai donc pensé à boost::tokenizer, mais en faisant le test suivant :
Je n'ai que la première string, ce qui paraît logique du fait que le caractère NULL finit en principe les strings.
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //#define MAX_PATH 260 char temp[MAX_PATH] = "YOUHOU;\0SALUT\0TOP"; boost::tokenizer<boost::char_separator<char> > tok(std::string(temp), boost::char_separator<char>("\0")); for (boost::tokenizer<boost::char_separator<char> >::const_iterator i = tok.begin(); i != tok.end(); ++i ) MessageBox(hwnd, i->c_str(), "Test", MB_ICONINFORMATION);
Seulement voilà, je dois faire cette séparation, et j'aimerais vraiment utiliser Boost.Tokenizer pour cela (j'aurais aussi l'alternative STL avec des istream_iterator<>, mais je risque d'avoir le même problème) ; par conséquent, sauriez-vous comment remédier à ce problème (une astuce quelconque) ?
Merci d'avance.
Partager