Interuption d'une boucle / J'apprends à faire un while

Interuption d'une boucle / J'apprends à faire un while - C++ - Programmation

Marsh Posté le 02-09-2003 à 15:27:10    

Hello,  
 
J'ai fais une boucle et je voudrai faire un bouton qui puisse arreté cette boucle.  
 
voila ce que j'ai écris:  

Code :
  1. jump1:
  2. Parallele1->WritePort(0x378,1);
  3. Sleep(100);
  4. Parallele1->WritePort(0x378,2);
  5. Sleep(100);
  6. Parallele1->WritePort(0x378,4);
  7. Sleep(100);
  8. Parallele1->WritePort(0x378,8);
  9. Sleep(100);
  10. Parallele1->WritePort(0x378,16);
  11. Sleep(100);
  12. Parallele1->WritePort(0x378,32);
  13. Sleep(100);
  14. Parallele1->WritePort(0x378,64);
  15. Sleep(100);
  16. Parallele1->WritePort(0x378,128);
  17. Sleep(100);
  18. if(CheckBox9->Checked==false)
  19. {
  20. goto jump1;
  21. }
  22. Parallele1->CloseDriver ();


 
Si je lance ce programme il plante, impossible de l'arrete et la boucle ne s'arrete plus.


Message édité par JPhi le 02-09-2003 à 15:33:12
Reply

Marsh Posté le 02-09-2003 à 15:27:10   

Reply

Marsh Posté le 02-09-2003 à 15:29:21    

ouais

Reply

Marsh Posté le 02-09-2003 à 15:31:42    

[:erowen1234]

Reply

Marsh Posté le 02-09-2003 à 15:32:20    

c'est une blague le goto ?
 
plus sérieusement
 
 

Code :
  1. while(!CheckBox9->Checked)
  2. {
  3.   for(unsigned i=1; i!=0x80; i <<= 1)
  4.    {
  5.      Parallele1->WritePort(0x378, i);
  6.      Sleep(100);
  7.    }
  8. }
  9. Parallele1->CloseDriver ();


Message édité par Taz le 02-09-2003 à 15:32:52
Reply

Marsh Posté le 02-09-2003 à 15:34:33    


 
ton post n'apporte aucune info, decris plus ton projet parce que la, echec

Reply

Marsh Posté le 02-09-2003 à 15:52:27    

Merci Taz,
 
Désolé mais je debute en C++ et je suis plus habitué à faire de l'assembleur pour des puces electronique que de faire du C++.
 
j'ai un encore un PB, dés que la boucle commence j'ai un message d'erreur : "le projet .... a provoqué une classe d'esception EAccessViolation etc etc .."
 
GetDefaultInterface()->WritePort(Address/*[in]*/, Data/*[in]*/);
 

Citation :

ton post n'apporte aucune info, decris plus ton projet parce que la, echec


 
Je savais pas k'il fallait forcément apporté des infos sur un forum.
Et pour la description de mon projet c'est juste de faire clignoté des leds sur le port // sans plus.

Reply

Marsh Posté le 02-09-2003 à 15:59:31    

Citation :

Je savais pas k'il fallait forcément apporté des infos sur un forum


 
ben si tu dis pas au moins ce que t'utilises (genre compilo) avec quel lib (w32, mfc, vcl, tagada) ainsi que d'autre truc du genre on va pas y arriver

Reply

Marsh Posté le 02-09-2003 à 16:31:39    

Citation :

Désolé mais je debute en C++ et je suis plus habitué à faire de l'assembleur pour des puces electronique que de faire du C++.


 
1° conseil : jamais de goto.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 02-09-2003 à 17:06:01    

JPhi a écrit :

Merci Taz,
 
Désolé mais je debute en C++ et je suis plus habitué à faire de l'assembleur pour des puces electronique que de faire du C++.
 
j'ai un encore un PB, dés que la boucle commence j'ai un message d'erreur : "le projet .... a provoqué une classe d'esception EAccessViolation etc etc .."
 
GetDefaultInterface()->WritePort(Address/*[in]*/, Data/*[in]*/);
 

Citation :

ton post n'apporte aucune info, decris plus ton projet parce que la, echec


 
Je savais pas k'il fallait forcément apporté des infos sur un forum.
Et pour la description de mon projet c'est juste de faire clignoté des leds sur le port // sans plus.

t'as un pointeur qui se ballade dans le décor

Reply

Marsh Posté le 02-09-2003 à 18:24:55    

Ohhh le Joli chenillard :D


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 02-09-2003 à 18:24:55   

Reply

Marsh Posté le 02-09-2003 à 19:15:19    

Ayé ca tourne  :bounce:  
 

Citation :

t'as un pointeur qui se ballade dans le décor


 
Non j'utilise pas de pointeur pk ?

Reply

Marsh Posté le 02-09-2003 à 19:16:57    

JPhi a écrit :


Non j'utilise pas de pointeur pk ?


Code :
  1. if (forumeur == newby && erreur.type == crash)
  2. {
  3. PostReponse("fais gaffe au pointeur :O" );
  4. }


 
 
(98% de succes)

Reply

Marsh Posté le 02-09-2003 à 19:17:17    

JPhi a écrit :


Non j'utilise pas de pointeur pk ?


 

Citation :

->


 
vas y redis le ?

Reply

Marsh Posté le 02-09-2003 à 19:50:40    

J'ai le droit à une explication ?  :heink:  

Reply

Marsh Posté le 02-09-2003 à 19:59:30    

-> est un opérateur qui renvoie l'adresse pointée par son operande gauche. Donc GetDefaultInterface() renvoie un pointeur.

Reply

Marsh Posté le 02-09-2003 à 20:16:08    

Code :
  1. GetDefaultInterface()->WritePort(Address/*[in]*/, Data/*[in]*/);


 
est dans un fichier .cpp en raport avec un objet que j'ai inséré dans le projet.
 
Et dans mon programme je n'ai pas de "WritePort(Address/*[in]*/, Data/*[in]*/); " qui se promene.
 
Alors mon probleme se situe ou ?
 

Reply

Marsh Posté le 02-09-2003 à 20:44:17    

JPhi a écrit :

voila ce que j'ai écris:  
[cpp]jump1:  
Parallele1->WritePort(0x378,1);  
Sleep(100);  
Parallele1->WritePort(0x378,2);  
Sleep(100);  
Parallele1->WritePort(0x378,4);  
Sleep(100);  
Parallele1->WritePort(0x378,8);  
Sleep(100);  
Parallele1->WritePort(0x378,16);  
Sleep(100);  
Parallele1->WritePort(0x378,32);  
Sleep(100);  
Parallele1->WritePort(0x378,64);  
Sleep(100);  
Parallele1->WritePort(0x378,128);  
Sleep(100);  


et mon cul c'est du poulet ? y'a des "->" et des "WritePort(Address, Data)" partout !

Reply

Marsh Posté le 02-09-2003 à 20:53:53    

Code :
  1. et mon cul c'est du poulet ? y'a des "->" et des "WritePort(Address, Data)" partout !


 
Cela si je les vire j'ai plus de programme  
 
Alors je vois toujours pas kesceki pose probleme !  
Si vous pouviez etre plus explicite et un peu moin agresif ca m'arangerai.
 
Je savais pas k'il y avais un minimum requit pour venir sur ce forum.

Reply

Marsh Posté le 02-09-2003 à 20:55:25    

JPhi a écrit :

Code :
  1. et mon cul c'est du poulet ? y'a des "->" et des "WritePort(Address, Data)" partout !


 
Cela si je les vire j'ai plus de programme  
 
Alors je vois toujours pas kesceki pose probleme !  
Si vous pouviez etre plus explicite et un peu moin agresif ca m'arangerai.
 
Je savais pas k'il y avais un minimum requit pour venir sur ce forum.

achète toi un bouquin et arrête de bricoler ... j'ai du mal à croire que tu ais déjà fait un truc qui fonctionne en asm

Reply

Marsh Posté le 02-09-2003 à 21:01:10    

Ok je vois la mentalité de certain ici.
"Si tu n'es pas à font dans le C++ depuis 3ans et tu passes pas ta vie à en faire c'est meme pas la pein de nous posé une question Ici c'est le forum des pros"  :pfff:  :pfff:  :pfff:  
 
Bravo la mentalité !  

Reply

Marsh Posté le 02-09-2003 à 21:42:01    

JPhi a écrit :

Ok je vois la mentalité de certain ici.
"Si tu n'es pas à font dans le C++ depuis 3ans et tu passes pas ta vie à en faire c'est meme pas la pein de nous posé une question Ici c'est le forum des pros"  :pfff:  :pfff:  :pfff:  
 
Bravo la mentalité !  
 


 
Ouais [:negueu]

Reply

Marsh Posté le 02-09-2003 à 23:11:43    

JPhi a écrit :

Alors je vois toujours pas kesceki pose probleme !  
Si vous pouviez etre plus explicite et un peu moin agresif ca m'arangerai.


 
Dans ton code tu as :

Code :
  1. Parallele1->WritePort(0x378, i);


Ce qui montre que ta variable Parallele1 est un pointeur.

Reply

Marsh Posté le 02-09-2003 à 23:47:35    

JPhi a écrit :

Ok je vois la mentalité de certain ici.
"Si tu n'es pas à font dans le C++ depuis 3ans et tu passes pas ta vie à en faire c'est meme pas la pein de nous posé une question Ici c'est le forum des pros"  :pfff:  :pfff:  :pfff:  
 
Bravo la mentalité !  
 

et t'as oublié: on aime pas les blaireaux qui nous les brises par ce qu'il faont du C++ depuis 3minutes, même pas foutu de prendre un tutoriel sur le net

Reply

Marsh Posté le 03-09-2003 à 00:38:17    

Taz a écrit :

et t'as oublié: on aime pas les blaireaux qui nous les brises par ce qu'il faont du C++ depuis 3minutes, même pas foutu de prendre un tutoriel sur le net


 
ca vole bas ici  :D

Reply

Marsh Posté le 03-09-2003 à 07:31:36    

Ok on reprend : Si

Code :
  1. GetDefaultInterface()->WritePort(Address/*[in]*/, Data/*[in]*/);

provoque une acces violation, il y a 95% de chances pour que GetDefaultInterface() renvoie un pointeur NULL. Donc essaie de t'intéresser à ce que devrait renvoyer cet appel, et à ce que tu es sensé faire pour qu'il renvoie un pointeur valide.


Message édité par R3g le 03-09-2003 à 07:32:05
Reply

Marsh Posté le 03-09-2003 à 08:44:48    

Taz a écrit :

et t'as oublié: on aime pas les blaireaux qui nous les brises par ce qu'il faont du C++ depuis 3minutes, même pas foutu de prendre un tutoriel sur le net


 
 [:benou_+1] Même si je l'aurai dit de façon moin agressive  :whistle:  
 
Sans dec, prend toi un bouquin ou un tuto sur le net et recommence le C++ à zero par ce que là c portnawak. (ou alros reste à l'assembleur si t'as pas le temps d'apprendre un nouveau langage  [:spamafote] )


---------------
Le Tyran
Reply

Marsh Posté le 04-09-2003 à 00:31:50    

JPhi a écrit :

Hello,  
 
J'ai fais une boucle et je voudrai faire un bouton qui puisse arreté cette boucle.  
 
voila ce que j'ai écris:  

Code :
  1. jump1:
  2. Parallele1->WritePort(0x378,1);
  3. Sleep(100);
  4. Parallele1->WritePort(0x378,2);
  5. Sleep(100);
  6. Parallele1->WritePort(0x378,4);
  7. Sleep(100);
  8. Parallele1->WritePort(0x378,8);
  9. Sleep(100);
  10. Parallele1->WritePort(0x378,16);
  11. Sleep(100);
  12. Parallele1->WritePort(0x378,32);
  13. Sleep(100);
  14. Parallele1->WritePort(0x378,64);
  15. Sleep(100);
  16. Parallele1->WritePort(0x378,128);
  17. Sleep(100);
  18. if(CheckBox9->Checked==false)
  19. {
  20. goto jump1;
  21. }
  22. Parallele1->CloseDriver ();


 
Si je lance ce programme il plante, impossible de l'arrete et la boucle ne s'arrete plus.


 
 
Mon dieu, quel horreur !!!! :o  :o  :o  :D  
 
Si tu veux stopper une boucle t'as deux façon de le faire :
 
1) Par de(s) condition(s)
2) Par l'appel de break dans ta boucle.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed