Text.stringbuilder [Résolu]

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
107
Date d'inscription
samedi 25 novembre 2000
Statut
Membre
Dernière intervention
4 mai 2013
-
Salut

Comment copier une partie d'un string dans
un autre string utilisant le stringbuilder
ex

dim sourcemytext as New System.Text.StringBuilder
dim desttext as New System.Text.StringBuilder
sourcemytext.Append("ABCDEF")


je voudrais copier par ex "CDEF" dans desttext
j'ai essayé comme ça
try 
 Dim charstr(3) As Char
 sourcemytext.CopyTo(2, charstr, 0, 4)
 desttext.Append(charstr.ToString)
 Catch ex As Exception
     MessageBox.Show(ex.Message)
 End Try


avec le debbuger je regarde la valeur de
desttext.tostring je n'ai pas "CDEF" mais
"System.Char[]"

merci d'avance

4 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
plutot

desttext.Append(sourcemytext.tostring.SubString(2,4)) 
Messages postés
14673
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 juin 2020
143
Bonjour,

Pourquoi tu n'utilises pas SubString

desttext.Append(sourcemytext.SubString(2,4))

Mon site
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
Salut

ben oui
pendant ce temps j'avais trouvé la solution
desttext.Append(charstr.ToArray) au lieu de
desttext.Append(charstr.ToString)

enfin ta solution est meilleur
plutot comme ça
desttext.tostring.Append(sourcemytext.SubString(2,4)) 
Messages postés
107
Date d'inscription
samedi 25 novembre 2000
Statut
Membre
Dernière intervention
4 mai 2013

Bonjour,

Encore plus simplement (d'après la documentation de la classe StringBuilder) :

'Pour initialiser le StringBuilder avec une sous-chaine d'une chaine
Dim sample As String = "ABCDEF"
Dim destText As New StringBuilder(sample, 2, 4, 255)

'Pour ajouter à un StringBuilder avec une sous-chaine d'une chaine
Dim sample As String = "ABCDEF"
Dim destText As New StringBuilder()
'...
destText.Append(sample, 2, 4)


Cordialement !