xantra
Messages postés56Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 2 septembre 2011
-
27 août 2006 à 19:50
xantra
Messages postés56Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 2 septembre 2011
-
28 août 2006 à 15:56
Bonjour,
Je me suis mis au Visual Basic de puis peu et j’aurai besoin
de votre aide car j’ai créé un code qui ne fonctionne pas comme je l’aimerai. Ce
code n’est d’aucune utilité, il me serre juste à apprendre le langage et je
voudrai par la suite l’ajouter a un programme que j’ai déjà créer.
Voici le code qui doit s’exécuter lorsqu’on appui sur
un bouton :
Private Sub Command1_Click()
Dim suite
Dim lenaes
Dim aes
Dim num
Dim lettre
Dim fiche
Dim valeur
suite = "ABCDEFabcdef1234567890"
aes = Text1.Text
lenaes = Len(aes)
lenaes = lenaes + 1
num = "1"
re:
If num = lenaes Then
GoTo fin
End If
lettre = Mid(aes, num, num)
valeur = InStr(1, suite, lettre)
If valeur = 0 Then
num = num + 1
GoTo re
Else
Let fiche = fiche + lettre
num = num + 1
GoTo re
End If
fin:
Label1.Caption = fiche
End Sub
Je pensai que en faisant ceci, si on écrit ‘’BN FDI3PO:DJ34RE’’
dans <st1:personname productid="la Text" w:st="on">la Text</st1:personname>1 et
que l’on clique sur Command1, alors il serait écrit ‘’FD3D34’’ dans label1,
hors la il m’écrit simplement ‘’BE’’. Je ne comprends pas où est le problème.
Peut être de la ligne ‘’Let fiche = fiche + lettre‘’ mais je n’en suit pas sur.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 28 août 2006 à 09:39
Re,
Si tu cherche a extraire d'un chaine de caractere les caractere autorisés ici ABCDEFabcdef1234567890
Alors essaie le code suivant (si tu as des problème de compréhension n'hésite pas.)
'Essaie de typer le plus possible tes variables
Dim suite As String
Dim aes As String
Dim num As Integer
Dim lettre As String
Dim fiche As String
suite = "ABCDEFabcdef1234567890"
aes = Text1.Text
'Parcours toute la chaine de caractere=> caractere par caractere
For num = 1 To Len (aes)
'Prend le caractere num de la chaine aes et le place dans lettre
lettre = Mid(aes, num, 1)
'On test si lettre est contenu dans suite si c'est le cas on le place a la suite de fiche
If InStr(1, suite, lettre) Then fiche = fiche & lettre
Next
'une fois tous les caractere traités on place fiche dans le label1
Label1.Caption = fiche
xantra
Messages postés56Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 2 septembre 2011 28 août 2006 à 15:56
Merci a toi, apres avoir relus mon scripte ligne par ligne hier soir
j'ai trouver mon erreur, je l'ai coriger et j'ai amélioré mon scripte.
l'erreur était ici : lettre = Mid(aes, num, num)
Mid ne va pas du caractère n°num jusqu'au caractère n°num dans aes mais
il commence au caractère n°num et il récupère un sertain nombre de
caractères. Donc il falait simplement mettre lettre = Mid(aes, num, 1).