Probleme de scripte

Signaler
Messages postés
56
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
2 septembre 2011
-
Messages postés
56
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
2 septembre 2011
-
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.

Merci d’avance

3 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Qu est suppose faire ce petit bout de code exactement ?

Quelle logique suit tu?

@+, Julien
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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 
 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+, Julien
Messages postés
56
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
2 septembre 2011

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).

Merci de votre soutient