Associer chaque caractere d'un mot a une variable différente

Résolu
cs_sanaria
Messages postés
15
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
21 février 2006
- 23 sept. 2004 à 13:58
cs_sanaria
Messages postés
15
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
21 février 2006
- 23 sept. 2004 à 15:13
Bonjour à tous,

Voila, j'aurais voulu savoir comment associer le caractere 1 d'un mot a une variable 1, le caractere 2 a une variable 2 etc pour un mot contenu dans une textbox.

Merci d'avance.

6 réponses

yomm
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
23 sept. 2004 à 14:57
ok...
donc voici en détail le fonctionnement:

Dim Toto() As String
Ici toto, est un tableau dynamique...cela permet de définir sa taille au cours du code...c'est lui qui va stocker tes caractères....
Dim i As Integer
est juste là pour la boucle for....rien d'important

ReDim Toto(Len(Text1.Text)-1)
comme je l'ai dit juste avant il faut donner la taille de ton tableau toto....
donc voici l'explication:
redim : équivaudrait à peut prêt à définition de la tailler
info : suivit de preserve ton tableau sera redimmensionné mais les lignes garderont leur valeur...

donc on disait:
Redim Toto donc là, je dis quel est le tableau que je redimmensionne...
ensuite, entre ( ) tu dois donner la taille <=> le nombre de lignes....
prenons un exemple : dans ton textbox tu as : [blue]maman
maman faisant 5 caractère tu dois déclarer un tableau de 5 lignes <> Redim Toto(5)
Mais : ton texte ne fera pas forcément 5 caractères d'où la commande:
[blue]len(Text1.Text) pour savoir commbien tu as de caractères dans ta textbox...
et pourquoi [blue]-1 ??? Parce que ton tableau commance à la ligne 0
donc pour 5 caractère tu as : 0,1,2,3,4...

donc voilà pour l'explication de [blue]ReDim Toto(Len(Text1.Text)-1)

maintnant la boucle FOR
maintenant que ton tableau a une taille suffisante pour chaque caractère de ton texte, il faut lui mettre les caractères...
[blue]For i = 1 To Len(Text1.Text)[blue] : ça c'est pour allez du premier caractère au dernier....
[blue]Toto(i - 1) = Mid(Text1.Text, i, 1) donc la coupons suivant le signe =
[blue]Toto(i - 1) : là, je renseigne mon tableau et je lui me le caractère à la ligne [blue]i -1 [blue]... pourquoi i-1 ??? car je commence ma boucle For à i=1 (soit le premier caractère du texte) , mais comme je l'ai dit avant, ton tableau commence à la ligne 0 d'où si i=1 => 1-1 =0 (j'écris bien à la première ligne de mon tableau...et ainsi de suite jusqu'à i = 5 => 5-1=4 dernière ligne de mon tableau dans le cas de "maman" qui faisait 5 caractères)

maintenant:
[blue]Mid(Text1.Text, i, 1) , Mid permet de récupérer une chaine de caractère dans un chaine....
son fonctionnement est le suivant :Mid(LaChaine, DebutDeLaSousChaine, NombreDeCaractèresALire)
Ici , Mid(Text1.Text, i, 1) signifie que , dans mon textbox, je vais récupérer à la position i un unique caractère....

et ainsi de suite

donc pour lire le nième caractère tu fais : Toto(n-1)

Voilà, la fonction split permet de coupé une chaine de caractère selon une autre chaine:
si tu prends la chaine maman et que tu fais Split("maman","a")

tu te retrouveras avec un tableau de 3 lignes contenant :
m
m
n

voilà @+

[blue]Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
3
yomm
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
23 sept. 2004 à 14:06
le plus simple je pense est de faire ceci:

dim Toto() as string

redim toto(len(textbox1.text))

for i = 1 to len(textbox1.text)
toto(i-1) = mid(textbox1.text,i,1)
next


tu auras donc un tableau dont chaque ligne contient 1 caractère de ton textbox...

il y a surement autrement mais c'est la première idée qui me vient à l'esprit étant donné que tu ne peux pas utiliser la fonction Split dans ce cas précis...

@+

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
yomm
Messages postés
515
Date d'inscription
dimanche 17 février 2002
Statut
Membre
Dernière intervention
10 mars 2008
3
23 sept. 2004 à 14:10
je viens de tester mon code, pour que tout soit vraiment correcte prend plutot cela :
    Dim Toto() As String
    Dim i As Integer
    
    ReDim Toto(Len(Text1.Text)-1)
    
    For i = 1 To Len(Text1.Text)
        Toto(i - 1) = Mid(Text1.Text, i, 1)
    Next


pour récupérer le premier caractère : Toto(0)
pour le second : Toto(1)
(....)
pour le dernier: Toto(Len(Text1.Text)-1)

voilà @+

Yomm >:)

[mailto:yommvb@ifrance.com yommvb@ifrance.com]

Et que la source soit avec toi!!!!!
0
cs_sanaria
Messages postés
15
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
21 février 2006

23 sept. 2004 à 14:10
Merci de ta réponse rapide. J'ose de demander encore qq minutes de ton temps pour m'expliquer plus précisement comment cela fonctionne car je suis un parfait débutant et j'essaye de découvrir le maximum par moi meme mais certaines choses me dépasse.

J'aimerais savoir :
- quel commande correspond a quel action ds ton code
- dans quelle variable va se mettre chaque caractere
- comment fonctionne la fonction split
0

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

Posez votre question
cs_sanaria
Messages postés
15
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
21 février 2006

23 sept. 2004 à 14:11
Tu m'a devancé ;) Merci, si tu peu détailler ce serais génial, merci !
0
cs_sanaria
Messages postés
15
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
21 février 2006

23 sept. 2004 à 15:13
((Merci beaucou ;)
0