C'est très simple (for ... to, next)

Résolu
stolken Messages postés 73 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 1 août 2006 - 4 oct. 2005 à 23:53
stolken Messages postés 73 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 1 août 2006 - 5 oct. 2005 à 00:51
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

stolken Messages postés 73 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 1 août 2006
5 oct. 2005 à 00:41
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
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
5 oct. 2005 à 00:01
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.
0
stolken Messages postés 73 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 1 août 2006
5 oct. 2005 à 00:04
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 oct. 2005 à 00:34
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
0

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

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
5 oct. 2005 à 00:37
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.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 oct. 2005 à 00:47
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
0
stolken Messages postés 73 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 1 août 2006
5 oct. 2005 à 00:51
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...
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
5 oct. 2005 à 00:51
Bien vu ! c'était pour voir si tu suivais... :-);

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

Amicalement,
Us.
0
Rejoignez-nous