Appuie et Sort

samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009 - 30 avril 2009 à 10:51
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 9 mai 2009 à 11:26
Bonjour,

Je suis en train de réaliser une application console. Il se tourne automatiquement tous les 10 minutes. Que dois-je faire pour sortir la boucle n'importe où et n'importe quand lorsque j'appuie sur une touche définie. Merci de m'aider.

12 réponses

cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
30 avril 2009 à 14:41
Salut,
cela n'engage que moi mais je ne trouve pas ton post très clair !
tu pourrais être plus précis ? Dans ta boucle effectue bien des instructions (appel de fonction(s), incrémentation ....), plus de détails s'il te plait

Cordialement MoH008 ! 
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
30 avril 2009 à 14:58
C une boucle do...while... infinie. Et pour faire touner automatique tous les 10 minutes, j'utilise la fonction Sleep(). Je veux que mon prgramme sorte cette boucle n'importe quand dès que j'appuie une touche, "s" par exemple. C clair maintenant?
0
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
30 avril 2009 à 15:24
lien

cela répond à ta question?
Cordialement MoH008 ! 
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
30 avril 2009 à 15:33
Pah, mon problème est pire que ça. Dans ce cas là, la boucle s'arrête quand "test" est atteint. Mais dans ce cas ci, même si "test" n'est pas encore atteint, quand j'appuie sur un touche, le programme sort la boucle.
0

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

Posez votre question
cs_MoH008 Messages postés 238 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 29 septembre 2011 1
30 avril 2009 à 15:44
essaie avec
si (touche pressée)
  return;

ou

si (touche pressée)
 break; // mais ce n'est pas propre

The possible meet the impossible to becom the possimpible !!
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
30 avril 2009 à 15:50
Salut
Pourquoi break n'est pas propre? Pour sortir d'une boucle infinie, break convient très bien.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
30 avril 2009 à 16:04
J'y ai déjà pensé. Mais avec cette méthode, l'arrêt de la boucle ne dépend pas quand on appuie sur la touche mais où on met le "si" dans la boucle. De plus, quand je le met dans ma boucle, mon prgramme sort jamais la boucle, ça je comprends pas. Merci quand même, une autre façon est mieux.
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
30 avril 2009 à 16:09
Ma boucle contient plusieurs fonctions, donc, avec ce méthode, où on met le structure de condition est un problème.
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
30 avril 2009 à 16:21
Orientes toi plus vers une programmation événementielle. Regarde quelques tutos pour mieux comprendre.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
samuraijack1412 Messages postés 26 Date d'inscription samedi 29 novembre 2008 Statut Membre Dernière intervention 13 juin 2009
30 avril 2009 à 16:43
Je crois que j'ai bien compris. Avec une boucle infinie qui contient des sous boucles pertant de temps pour parcourir une pile, l'intruction:
si(test)
     break;
ne convient pas si on veut sortir cette boucle tout suite dès une action quelconque.
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
4 mai 2009 à 09:29
Si tu veux vraiment être sure de sortir de la boucle des que tu appuies sur une touche, la programmation événementielle ne peut pas te le garantir.
La seule solution c'est d'utiliser un thread qui ne fera que scruter toutes les 10 ms si une touche est appuyé ou pas. Si oui, ce thread devra avertir le second thread afin qu'il arrête le traitement.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
9 mai 2009 à 11:26
Salut,

Pas sûr d'avoir compris, mais voilà un bout de code dont tu peux peut être t'inspiré, avec thread récupération de touche et arrêt de boucle infinie.
0
Rejoignez-nous