Découpage dun string dans l'espace
Coucou a tous !
Je vais de ce pas expliciter ce texte peu clair !
Mon but ? J'ai une chaine de caractére composé de texte et de balise ( type html~ ); je veut juste afficher mon texte formaté a l'ecran . Pour ca , j'ai trouvé une fonction qui remplie semble-til correctement son rôle ( bon j'en suis au tout début, donc c'est trés rudimentaire et il manque pas mal de fonction .
Pour l'instant je me contente de formater le exte sur UNE seule ligne et avec une seule balise .
Mon probléme réside dans le fait que mon texte ne se place pas ou je le souhaite dans l'espace ( le premir mot est toujour ou il faut, mais les suivant ne sont pas a une distance normale des autre mots .)
Je sais a quoi c'est du, mais je ne vois pas trop comment le résoudre
( c'est du a la ligne
Code:
1 2
|
TraiterTexte(reste2,x+(12*pos),y); |
voici le code de la fonction en entier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
void cTexteDialogue::TraiterTexte(std::string temp, int x, int y)
{
std::string::size_type pos;
std::string::size_type pos2;
std::string balise ;
std::string reste ;
std::string reste2 ;
pos = temp.find('[');
if (pos == std::string::npos )
{
cTexteManager::GetInstance().glPrint(x,y,temp.c_str());
}
if (pos == 0 )
{
pos2 = temp.find(']');
balise.insert(0,temp, 1 , pos2-1 );
TraiterBalise(balise);
reste.insert(0,temp,pos2+1, std::string::npos);
TraiterTexte(reste,x,y);
}
if ( pos > 0 && ( pos != std::string::npos ) )
{
reste.insert(0,temp,0,pos);
TraiterTexte(reste,x,y);
reste2.insert(0,temp,pos,std::string::npos);
TraiterTexte(reste2,x+(12*pos),y);
}
} |
Je peut expliquer certain passage si ce n'est pas trés clair !
Enfait il me juste savoir OU et de combien je doit me deplacer selon x .
( le *12 est une valeur arbitraire, car je ne connais la taille exacte d'un font en largeur ; mais au pire, par tatonnement je devrai trouver la constante qui me convient, une fois la bonne formule ( en fonction de TAILLE_FONT ) trouvée !
merci d'avance !
edit: mon texte est de la forme :
Citation:
"AAAaaaaaaaaa [Color 255;0;0]HeHe[/Color] lol lol[Color 255;0;0] non Mais ohoo[/Color]"
ps: si je me trompe de forum, n'hésitez pas a déplacer !