Insérer caractere dans une chaine.

Chiche69 Messages postés 34 Date d'inscription mercredi 24 juin 2009 Statut Membre Dernière intervention 25 septembre 2010 - 24 févr. 2010 à 18:31
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 - 25 févr. 2010 à 18:54
Bonjour a tous,

Voila ce que je voudrais faire:
j'ai une textbox dans laquelle l'utilisateur ecrit quelques mots. je voudrais que chaque caractere soit lu (ca j'y arrive !) puis ajouter dans une string (par exemple).

Je m'explique par un exemple:

imaginons que le text tapé soit "bonjour".

je vais lire "b" puis le stocker dans une variable (mais de quelle type, je crois que c'est la que ca bloque...)
ensuite je vais lire "o" puis l'ajouter dans la variable, qui contiendra donc "bo".
et ainsi de suite...

voila entre autre ce que j'ai essayer. sauf que j'ai une erreur qui me dit que l'index (pour la methode Insert) est négatif, ce que je ne comprends pas parce que i ne peut être négatif..

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       
        Dim mot As String = String.Empty
        Dim rep As String = TextBox2.Text
        Dim i As Integer
        Dim taille As Integer = rep.Length
        Dim caractere As String


        For i = 0 To taille - 1

            If i <> taille Then

                'lit chaque caractere de la reponse
                caractere = rep(i) ' ca c'est OK

                mot.Insert(i, caractere)

            Else
            End If

        Next i



je vous remercie par avance pour votre aide !
cordialement

2 réponses

NHenry Messages postés 15030 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
24 févr. 2010 à 19:47
Bonjour,

Bien que je n'en sache pas le but, Voici un exemple :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       
        Dim mot As String = ""
        Dim rep As String = TextBox2.Text
        Dim i As Integer
        Dim taille As Integer = rep.Length
        Dim caractere As String


        For i = 0 To rep.length - 1
            'lit chaque caractere de la reponse
            caractere = rep.substring(i,1)
            mot+=caractere            
        Next i


Tu peux aussi passer par StringBuilder si la chaine est longue, ce sera plus rapide.

Mon site
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
25 févr. 2010 à 18:54
Bonsoir
mot.Insert(i, caractere)
avec ce code on repart avec "mot" = empty à chaque boucle, d'où l'erreur de dépassement dès la 2ième lettre.

A tester :
 mot = mot.Insert(i, caractere)
0