Chaine de caractere

zekruss Messages postés 4 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 27 novembre 2007 - 3 nov. 2007 à 23:02
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 - 4 nov. 2007 à 01:33
salut ,

j'ai besoin d'un programme qui a la lecture d'une chaine de caractere introduite dans une textbox par exemple , et aprés avoir specifié le type de separateur , separe le mots en petit mots et les mets dans un tableau

Exemple , avec le separateur "A" , j'introduis       126A5460A0A45
il met ds le tableau   126 puis ds la prochaine case 5460 puis 0 puis 45

merci

6 réponses

Profil bloqué
4 nov. 2007 à 00:46
Essaye ceci ( les boites de dialogue sont juste pour voir le résultat)

Dim chaine As String   ' la chaine complète
Dim tableau() As String    ' le tableau des sous-chaines
Dim pos As Long  ' la position du caractère séparateur
Dim index As Integer

Private Sub Form_Load()

    chaine = "126A5460A0A45"
    index = 0
    ReDim tableau(index)
    Do
        pos = InStr(chaine, "A")
        If pos = 0 Then Exit Do
        tableau(index) = Left$(chaine, pos - 1)
        MsgBox tableau(index)
        ReDim tableau(0 To index + 1)
        index = index + 1
        chaine = Right$(chaine, Len(chaine) - pos)
    Loop
    If Len(chaine) > 0 Then
         tableau(index) = chaine
         MsgBox tableau(index)
    End If

End Sub
GRENIER Alain
0
Utilisateur anonyme
4 nov. 2007 à 01:10
Salut à tous.
Galain, pourquoi ne pas avoir utiliser split ?







__________
Kenji

(


Nouveau forum VBA/Office
0
Profil bloqué
4 nov. 2007 à 01:22
Salut Kenji

J'y avais pensé mais je ne l'ai jamais utilisé : plutôt que de dire des bétises j'ai préféré une solution à l'ancienne et qui est fonctionnelle
A+ et bonne prog

GRENIER Alain
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 36
4 nov. 2007 à 01:24
Salut

Voila une methode plus courte et peut etre plus rapide.

dim tableau()
tableau = split("126A5460A0A45","A")

for i = 0 to ubbound(tableau)
msgbox tableau(i)
next

Bon courage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
4 nov. 2007 à 01:31
Salut nhervagault
tu m'as devancé car je me suis renseigné sur la fonction Split et j'allais proposer le même code que toi mais avec un seul b à ubound
Allez A+

GRENIER Alain
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
4 nov. 2007 à 01:33
Salut,

J'aurais pu résoudre ce problème avec mid$, mais je voulais te dire merci GAlain pour les fonctions telles que left, right, instr, et redim, je n'en connaissais aucune, et elles sont toutes très pratiques, merci beaucoup :)
0
Rejoignez-nous