OVH Cloud OVH Cloud

concaténer du texte dans un richEditBox

3 réponses
Avatar
Neoli
Quelle est la meilleure façon de concaténer du texte dans un richEditBox ?
Pour le moment je fais

richTextBoxOutput.Text += "nouveau texte";

mais j'ai pas l'impression que c'est génial, au niveau des allocations.

J'ai aussi vu des solutions avec SelectedText mais il me faut
positionner mon curseur de sélection à la fin pour cela et ça ne me va pas.

3 réponses

Avatar
Guillaume Davion
Le mieux dans tous les cas pour faire de la concaténation de chaîne,
c'est l'objet StringBuilder.
Maintenant ca n'est intérressant que si tu fais tous tes
concaténation en une seule fois.

Si c'est le cas, ca donnera un code qui ressemblera à ca (en C#):

System.Text.StringBuilder sb = new StringBuilder;
//Code ou tu fais tes concaténations
for(int i=0;i<1000;i++)
sb.Append(i.ToString());

textBox.Text = sb.ToString()
Avatar
Zoury
Salut !

Le mieux dans tous les cas pour faire de la concaténation de chaîne,
c'est l'objet StringBuilder.



issh.. :O)

Maintenant ca n'est intérressant que si tu fais tous tes
concaténation en une seule fois.



ah ! ça ça sonne mieux ! :O)

En effet, si tu prévois concaténer plusieurs bouts de chaine de suite (dans
une boucle par exemple), le StringBuilder te fera gagner beaucoup de temps.
Pour gagner encore plus de temps tu peux intialiser le StringBuilder en lui
passant une capacité de départ : new StringBuilder(2000), par exemple.

Si toutefois tu ne fais qu'ajouter que quelques chaines par ci par là,
l'opérateur += devrait être plus rapide, à moins, bien sûr, de conserver
l'instance du StringBuilder et de n'avoir que la méthode Append() à appeler.

AMHA, le mieux serait de faire des tests dans l'environnement concerné et
voir laquelle des deux options répond le mieux à ta situation.

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
Zoury
...et je viens de me rendre compte que la classe TextBoxBase dont héritent
les contrôle TextBox et RichTextBox offre une méthode AppendText(). :OP

--
Cordialement
Yanick
MVP pour Visual Basic
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
Salut !

> Le mieux dans tous les cas pour faire de la concaténation de chaîne,
> c'est l'objet StringBuilder.

issh.. :O)

> Maintenant ca n'est intérressant que si tu fais tous tes
> concaténation en une seule fois.

ah ! ça ça sonne mieux ! :O)

En effet, si tu prévois concaténer plusieurs bouts de chaine de suite


(dans
une boucle par exemple), le StringBuilder te fera gagner beaucoup de


temps.
Pour gagner encore plus de temps tu peux intialiser le StringBuilder en


lui
passant une capacité de départ : new StringBuilder(2000), par exemple.

Si toutefois tu ne fais qu'ajouter que quelques chaines par ci par là,
l'opérateur += devrait être plus rapide, à moins, bien sûr, de conserver
l'instance du StringBuilder et de n'avoir que la méthode Append() à


appeler.

AMHA, le mieux serait de faire des tests dans l'environnement concerné et
voir laquelle des deux options répond le mieux à ta situation.

--
Cordialement
Yanick
MVP pour Visual Basic