Refresh une boucle While à partir d'une fonction

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
nograd
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 23 févr. 2017 01:16
Status : Hors ligne

Refresh une boucle While à partir d'une fonction

#1

Message par nograd »

Bonsoir amis d'Autoit !
Depuis quelques jours je me familiarise avec Autoit, mais j'ai un obstacle, qui malgré mes recherches, me laisse sans réponse ..
J'aimerais savoir s'il est possible de refresh une boucle While (avec ContinueLoop) à partir d'une fonction ?

Code : Tout sélectionner

func LoopRefresh($i)
	If $i = 2 Then
		ContinueLoop
	Else
		ConsoleWrite($i & @LF)
	Endif
EndFunc


While 1

	LoopRefresh(1)

	LoopRefresh(2)

	LoopRefresh(3)

WEnd
Par exemple ici, le ContinueLoop à la 3eme ligne ne fonctionne pas, car la fonction, malgré que celle-ci soit dans une boucle While, ne permet pas de faire cela.
Mais justement, je voudrais trouver un moyen pour refresh la boucle while et donc là refaire partir du début à partir de la fonction :(

J'ai beau rechercher, je n'ai rien trouvé, si une personne détient une solution je serais vivement preneur !
Merci d'avance, et à bientôt :? !
marcgforce
Niveau 3
Niveau 3
Messages : 47
Enregistré le : lun. 07 mars 2016 07:20
Status : Hors ligne

Re: Refresh une boucle While à partir d'une fonction

#2

Message par marcgforce »

Bonjour,

ce n'est pas un continueloop que tu dois employer dans une fonction pour lui dire de continuer, mais un return, il retournera au while avec rien dans la besace et reprendra la boucle :
func LoopRefresh($i)
   If $i = 2 Then
      return; pas continueloop
   Else
      ConsoleWrite($i & @LF)
   Endif
EndFunc


While 1

   LoopRefresh(1)

   LoopRefresh(2)

   LoopRefresh(3)

WEnd

Bonne journée :P
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Refresh une boucle While à partir d'une fonction  

#3

Message par jguinch »

et il faut utiliser les codes de retour avec Return, ce qui permet de connaître, entre autres, le résultat d'une fonction :
While 1
   $result = LoopRefresh(1)
   If Not $result Then ContinueLoop

   $result = LoopRefresh(2)
   If Not $result Then ContinueLoop

   $result = LoopRefresh(3)
   If Not $result Then ContinueLoop
WEnd



Func LoopRefresh($i)
   If $i = 2 Then
      return 0; pas continueloop
   Else
      ConsoleWrite($i & @LF)
   Endif
   Return 1
EndFunc
Bon, là on a une boucle infinie....
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
nograd
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 23 févr. 2017 01:16
Status : Hors ligne

Re: Refresh une boucle While à partir d'une fonction

#4

Message par nograd »

Bonjour,
Merci de votre aide, cela marche parfaitement grâce à vous ! :P
Répondre