C'est très simple (for ... to, next) [Résolu]

Signaler
Messages postés
73
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
1 août 2006
-
stolken
Messages postés
73
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
1 août 2006
-
Salut tt le monde !
Voici un ptit bout de code récupéré ici que je ne comprends pas :

For y = 0 To 300
MSComm1.RTSEnable = True
Next
MSComm1.RTSEnable = False


A quoi servent For, to et next ?

Merci

8 réponses

Messages postés
73
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
1 août 2006

J'ai bien saisi.

En fait je cherche à faire un reset sur une carte à puce.

Peut etre que l'auteur du code a il fait cette boucle pour faire une espece de timer ?

ps: j'ai lui ai poser la question mais je n'ai pas eu de réponse.


Merci votre aide.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonsoir Stolken,

Que veux-tu dire exactement ? Comment on se sert de FOR TO NEXT, où A quoi sert ici FOR TO NEXT !

Pour cette dernière remarque, la réponse est évidente ! A RIEN !

Où as-tu dégoté ça ?

Amicalement,
Us.
Messages postés
73
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
1 août 2006

Ben je voudrais savoir comment on se sert de "for to next" pour pouvoir comprendre ce code que j'ai trouvé ici : http://www.vbfrance.com/code.aspx?id=7787
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
peut-être cette boucle est spécifique pour l'utilisation du port COM
la boucle for execute les instruction qu'elle contient jusqu'à ce que les valeurs de départ soit identiques

For I = 1 to 5
MsgBox "ok n°" & I
Next I

Next ou Next I ajoute 1 (par défaut) à I à chaque fin de bouclage....

PCPT
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Ah bon...

Je crûs un instant que ta question innocente était un poil malicieuse... Tu vas comprendre pourquoi...

FOR TO NEXT, est une focntion pour incrémenter une variable à chaque passage. Un exemple, c'est plus facile pour expliquer :

si on écrit :

FOR y=0 TO 5
msgbox "la valeur y vaut " & y
NEXT

Tu verras le message
"la valeur y vaut 0"
"la valeur y vaut 1"
"la valeur y vaut 2"
"la valeur y vaut 3"
"la valeur y vaut 4"
"la valeur y vaut 5"
"la valeur y vaut 6"

-Donc la variable y, prendra comme première valeur, la valeur zéro, (y=0)
-Exécute les instructions jusqu'à NEXT
-à NEXT, on recommence depuis FOR TO, mais avec une incrémentation de la variable y (donc ici y=1)

Ainsi de suite, jusqu'à la valeur finale 6.

=

Normalement, les instructions à exécuter (compris entre le FOR et NEXT) doivent utiliser la variable (ici y). Sinon, auncun intérêt de recommencer un code statique plein de fois... une fois suffit.

Donc ici :

For y = 0 To 300
MSComm1.RTSEnable = True
Next

faire 301 la boucle, n'a aucun intérêt. Mettre "MSComm1.RTSEnable = True" une fois suffit...
Puis le comble, c'est après... puisse que une fois tu as mis : MSComm1.RTSEnable True , tu déclare exactement l'inverse : MSComm1.RTSEnable False

Donc, le résultat finale c'est cette dernière déclaration... donc toute la boucle est inutile...

En espérant d'être assez clair,
Amicalement,
Us.
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
essai de voir les sources concernant les cartes à puce ou les ports COM.
dans la logique, cette boucle est absurde. peut-être une manipulation particulière (et obscure)

ps : us_30 -> 0 to 5 ; Y ne vaudra pas 6

PCPT
Messages postés
73
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
1 août 2006

J'ai regardé toute les codes et c'est le seule qui montre un reset de carte à puce.

J'ai trouvé autre chose sur le forum que je comprend pas non plus (décidement ...)

Voila ce que j'ai trouvé si vous y voyez plus clair que moi ... :

Ecrit pas Megafan :

pour provoquer un Reset sur un lecteur de carte type 'phoenix' ou 'smartmouse',il suffit de monter et descendre la sortie RTS (ou le contraire sur smartmouse).

voici un bout de code d'une fonction Reset

strtemp = "1" si le reset est inversé (smartmouse)
strtemp="0"pour phoenix
CommOcx est ton Mscomm passé en paramètre
Mysleep(X) est une fonction qui fait doevents pendant X millisecondes.

If strtemp = "1" Then
CommOcx.RTSEnable = False
MySleep (100)
CommOcx.RTSEnable = True
MySleep (400)
Else
CommOcx.RTSEnable = True
MySleep (100)
CommOcx.RTSEnable = False
MySleep (400)
End If

' Attendre l'ATR
strtemp = ""
Do
DoEvents
If CommOcx.InBufferCount Then
strtemp = strtemp + myhex(Asc(CommOcx.Input))
End If
Loop While CommOcx.InBufferCount

Strtemp contient l'ATR...
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bien vu ! c'était pour voir si tu suivais... :-);

Euh... Le port COM, n'est pas têtu... la boucle est inutile...

Amicalement,
Us.