Boost::Tokenizer : accès direct aux tokens [RESOLU]

Boost::Tokenizer : accès direct aux tokens [RESOLU] - C++ - Programmation

Marsh Posté le 02-10-2008 à 16:26:11    

Bonjour,
 
J'utilise Boost::Tokenizer et j'aimerais pouvoir accéder directement aux sous chaines.  
 
Plutôt que de faire comme dans les exemples donnés :
 

Code :
  1. tokenizer<> tok(s);
  2. for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg)
  3.        cout << *beg << "\n"; // affiche tous les tokens

 
 
 
j'aimerais pouvoir faire quelque chose comme cela :
 

Code :
  1. tokenizer<> tok(s);
  2. cout<<tok[1]<<endl;    // affiche le second token


 
A défaut quelle autre librairie pourrais-je utiliser ?


Message édité par sanglierquipue le 06-10-2008 à 13:33:18
Reply

Marsh Posté le 02-10-2008 à 16:26:11   

Reply

Marsh Posté le 03-10-2008 à 14:43:11    

Pas de réponse, dois-je en conclure que ce n'est pas possible  :??:

Reply

Marsh Posté le 03-10-2008 à 15:15:44    

Dans la doc:

 
Citation :


No parsing is actually done upon construction. Parsing is done on demand as the tokens are accessed via the iterator provided by begin.

 

Tu peux éventuellement te créer ton méchanisme par dessus :o
tu peux te créer une fonction qui te renverrait un vector de Type (défini pour le tokenizer) en forçant l'évaluation :x
ou sucharger l'opérateur [] :D

 



Message édité par BenO le 03-10-2008 à 15:16:42

---------------
Python Python Python
Reply

Marsh Posté le 03-10-2008 à 15:47:42    

et ça ca te va pas :
 

Code :
  1. tokenizer<> tok(s);
  2. vector<string> tks;
  3. for(tokenizer<>::iterator beg=tok.begin(); beg!=tok.end();++beg)
  4.        tks.push_back(*beg);


 
Puis tu as tes token dans tks.

Reply

Marsh Posté le 03-10-2008 à 19:13:16    

Merci, cela confirme ce que je pensais, je vais surcharger []


Message édité par sanglierquipue le 03-10-2008 à 19:14:28
Reply

Marsh Posté le 04-10-2008 à 11:14:38    

quel operator[] ? Tu vas boucheriser tokenizer ??? Je t'en souhaite :E
fais plutot une classe à toi qui se remplit comme tokenizer et fournti son propre []

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed