Page 1 sur 1

Boucles conditions jusqu'à avec une limite de temps

Posté : mar. 10 nov. 2020 22:20
par Misa10
Bonjour en faite j'ai besoin d'aide car je voudrais créer une boucle avec conditions jusqu'à donc :

Code : Tout sélectionner

Do 

Until 
Mais je veux que si cette boucle au bout d'un certain temps défini si la condition n'est pas rempli dans ce temps là la boucle s'arrête.

Exemple la boucle do until la condition est rempli donc ça lance les lignes de code . Normal quoi .

Mais exemple je décide que do until dure 5 secondes max si la condition après 5 secondes n'est pas rempli ça sort de cette boucle et lis d'autre lignes de code .

J'ai encore rien n'écrit sur le papier c'est juste dans ma tête donc désolé de pas vous donner un bout de code . Merci d'avance pour ceux qui vont m'aider.

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : mer. 11 nov. 2020 01:13
par Tlem
Bonsoir, voici la version papier avec presque tout les éléments. ^^

1 - Initialisation d'un timer juste avant de rentrer dans la boucle.
2 - Dans la boucle, un contrôle du timer.
3 - Si timer > valeur définie alors on exit de la boucle.

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : mer. 11 nov. 2020 22:34
par Misa10
Bonsoir donc en suivant ton idée j'ai eu une idée mais je suis pas sûr pas que ça va marcher .

Code : Tout sélectionner


$time = 1
Do 
 
 $time +1
 $example = pixelsearch ...
 
 
Until $example = 1 or $time = 5000


En gros c'est un exemple mais donc quand le pixelsearch a trouvé la couleur donc la boucle se fini mais pour faire un timer la variable Time rajouterai à chaque fois que la boucle se relance et donc s'arrête à 5000 logiquement la boucle va se relancer chaque seconde donc ça ferai 5000 seconde ?

Sinon j'ai vu les deux fonctions timerinit et timerdiff qui pourrait être intéressante mais j'ai jamais utilisé et je ne suis pas sur mon pc pour l'instant donc j'ai pas pu test pour voir comment les deux fonctions marche .

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : mer. 11 nov. 2020 22:44
par Tlem
Bon, alors c'est pas tout a fait ça.

Vous devez d'abord TimerInit. Ensuite votre boucle Do, et dans celle-ci faire un TimerDiff pour vérifier si $fDiff est plus grand que $TimerMax pour ExitLoop. ^^

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : jeu. 12 nov. 2020 14:07
par jl56
Bonjour,

voici un exemple,


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 437, 192, 124)
Global $inp_temps_restant = GUICtrlCreateInput("", 137, 56, 121, 21)
Global $Quitter = GUICtrlCreateButton("Quitter", 166, 180, 75, 25)
Global $Label1 = GUICtrlCreateLabel("Temps restant", 28, 60, 71, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Local $debut_timer = TimerInit(); initialisation du timer
Local $temps = 10; valeur de temps en seconde
Local $memo_reste = -1


Do
   $msg = GUIGetMsg()
   $reste = TimerDiff($debut_timer) ; différence en millisecondes

   $reste = Int($reste / 1000) ;on transforme le reste en  secondes entieres


   If $reste <> $memo_reste Then ; on modifie l'affichage que toutes les secondes

      GUICtrlSetData($inp_temps_restant, $reste & "/" & $temps)
      $memo_reste = $reste ; on memorise que c'est affiché sur la seconde en cours

   EndIf


   If $reste >= $temps Then ExitLoop ; si le temps est dépassé ou égal on sort

   If $msg = $Quitter Then ExitLoop

   Sleep(20)

Until $msg = $GUI_EVENT_CLOSE

A+

JL56

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : jeu. 12 nov. 2020 17:19
par TommyDDR
Je pense que le but de Tlem était de ne pas donner le pain directement dans la bouche de Misa10 mais de lui faire trouver la réponse ;)

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : jeu. 12 nov. 2020 20:49
par jl56
@TommyDDR

Je m'en doutais bien mais je suis en vacances et j'avais un peu de temps pour produire cet exemple et rendre, un peu, l'aide que m'ont apporté les membres de ce forum. Ça reste complémentaire aux informations de Thiérry.

@Misa10 prenez en compte, SVP, les 2 messages et regardez les explications dans l'aide.

@Thierry, si c'est une erreur de ma part merci de m'en informer.

Bonne soirée

A+

JL56

Re: Boucles conditions jusqu'à avec une limite de temps

Posté : jeu. 12 nov. 2020 23:32
par Tlem
Bonsoir.
J'avais trouvé la méthode de tommy très appropriée et éducative dans ce sujet.
J'ai voulu reproduire, mais vous avez cassé mon effet...
Je ne sais pas si j'arriverai a m'en remettre. :lol: