Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Débutant
Débutant Pour bien débuter avec Delphi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/01/2013, 22h33   #1
gaston11
Membre à l'essai
 
Homme armindo simao
Technicien maintenance
Inscription : novembre 2012
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme armindo simao
Localisation : France, Aude (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 50
Points : 20
Points : 20
Par défaut comment sortir d'une boucle qui dure trop?

bonsoir, et bonne année a tous!

voilà mon petit soucis
je traite actuellement une gros lots de fichiers

environ 1000 fichiers avec chacune +-200 lignes

cette boucle fait des calculs et ça prend du temps

comme je suis en test une fois que la boucle est lancée comment l’interrompre facilement?? (pour pouvoir debugger)

actuellement je vais avec le gestionnaire windows et je casse le processus, il n'y aurais un moyen plus subtil??
j'ai placé " Application.ProcessMessages;" dans la boucle qui m donne acces a windows mais pas pour l’arrêter

autre chose, dans le temps avec turbo pascal pour debugger mes prog je plaçais dans des endroit stratégique des test qui lançait une opération interdite je divisait un nombre par zero, du coup ca plantait là et quand je le voulait et je pouvait verifier les variables concernées... ca ne marche plus! la division par zero ne provoque plus de plantage??

merci de vos lumières!
gaston11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 05h27   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 416
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 416
Points : 10 801
Points : 10 801
impressionnant

tu connais les points d'arrêt ?

Ctrl+F2 pour stopper le programme en cours.
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/01/2013, 08h07   #3
Lung
Membre Expert
 
Avatar de Lung
 
Analyste-programmeur
Inscription : mai 2002
Messages : 2 140
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Yonne (Bourgogne)

Informations professionnelles :
Activité : Analyste-programmeur
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 2 140
Points : 2 356
Points : 2 356
Citation:
Envoyé par Paul TOTH Voir le message
tu connais les points d'arrêt ?
Et les points d'arrêt conditionnels (très pratique sur les grosses boucles).
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
______________________________________________________________________________________________

Delphi 6#2 Entreprise - Delphi 2010 Architecte - Delphi XE2 Entreprise
Win XP Pro - OpenGL 2.1 - Oracle 11g - Firebird 2.5.0.2
Écrivez dans un français correct !!
Lung est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 07/01/2013, 09h53   #4
Gilbert Geyer
Modérateur
 
Homme
Ingénieur retraité
Inscription : octobre 2005
Messages : 1 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur retraité

Informations forums :
Inscription : octobre 2005
Messages : 1 944
Points : 2 512
Points : 2 512
Bonjour,

Autre possibilité :

Code :
1
2
3
4
5
function  ToucheCla(t : integer) : boolean; // Appui Touche
//        utilisations : if ToucheCla(VK_CONTROL) then EXIT;
//                       if ToucheCla(Ord('R')) then EXIT;
begin     Result:= ((GetAsyncKeyState(t) and 32768)<> 0)
end;
A+.
Gilbert Geyer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/01/2013, 12h01   #5
gaston11
Membre à l'essai
 
Homme armindo simao
Technicien maintenance
Inscription : novembre 2012
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme armindo simao
Localisation : France, Aude (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 50
Points : 20
Points : 20
Citation:
Envoyé par Paul TOTH Voir le message
impressionnant

tu connais les points d'arrêt ?

Ctrl+F2 pour stopper le programme en cours.
Ctrl+F2 NE MARCHE PAS!!!!

pourquoi tand d'ironie??
gaston11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 12h26   #6
yvonic2010
Membre à l'essai
 
Inscription : février 2008
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 39
Points : 20
Points : 20
Je dis peut être une bêtise mais CTRL+F2 c'est pour réinitialiser le programme, ça risque de compliquer de faire du débug si tout retourne à 0 ...
yvonic2010 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/01/2013, 19h37   #7
gaby277
Membre du Club
 
Inscription : août 2005
Messages : 85
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 85
Points : 64
Points : 64
Par défaut Sotir d'une boucle longue

Bonjour
Moi je rajoute simplement une case a cocher que je reste dns la boucle
if caseACocherStop.checked then exit;
Bien sur il faut application.processmessages dans la boucle
Apres mise au point je supprme la case a cocher ou je la rend invisible.
gaby277 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 21h12   #8
gaston11
Membre à l'essai
 
Homme armindo simao
Technicien maintenance
Inscription : novembre 2012
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme armindo simao
Localisation : France, Aude (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 50
Points : 20
Points : 20
Citation:
Envoyé par Gilbert Geyer Voir le message
Bonjour,

Autre possibilité :

Code :
1
2
3
4
5
function  ToucheCla(t : integer) : boolean; // Appui Touche
//        utilisations : if ToucheCla(VK_CONTROL) then EXIT;
//                       if ToucheCla(Ord('R')) then EXIT;
begin     Result:= ((GetAsyncKeyState(t) and 32768)<> 0)
end;
A+.


Impeccable!! ça marche!!!

merci!
gaston11 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/01/2013, 23h34   #9
gaston11
Membre à l'essai
 
Homme armindo simao
Technicien maintenance
Inscription : novembre 2012
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme armindo simao
Localisation : France, Aude (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2012
Messages : 50
Points : 20
Points : 20
Citation:
Envoyé par gaby277 Voir le message
Bonjour
Moi je rajoute simplement une case a cocher que je reste dns la boucle
if caseACocherStop.checked then exit;
Bien sur il faut application.processmessages dans la boucle
Apres mise au point je supprme la case a cocher ou je la rend invisible.

merci de l'idée!!
j'essayerais
gaston11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h13.


 
 
 
 
Partenaires

Hébergement Web