Bonjour ,
Je désire savoir s'il existe une fonction ou une procédure qui permet la fermeture du programme pascal !!
Merci d'avance pour votre réponse ;)
Version imprimable
Bonjour ,
Je désire savoir s'il existe une fonction ou une procédure qui permet la fermeture du programme pascal !!
Merci d'avance pour votre réponse ;)
Break, pour sortir d'une boucle. Exit, pour sortir d'une procédure ou fonction, ou pour arreter le programme dans la boucle principale. Halt pour quitter le programmer n'importe où. :)
j'ai essayé 'halt' mais le programme ne se ferme pas (je veux que ça ferme sans que l'utilisateur clique sur la case X à droite du fenêtre ;)
Merci
Code:
1
2
3
4
5
6
7
8
9
10
11 program sortie ; uses wincrt; var n :char ; begin writeln('desirez vous quitter le programme :(o/n)'); readln(n); if n = 'o' then halt ; end.
Ton code ne compile pas, il faut passer un paramètre à Halt. Regarde l'aide du compilateur ;)
Koi,
Alors montre-nous le code effectif que tu as actuellement, parce quand tu écris
avec le code cité,
je ne te crois pas vraiment, ça ne doit pas pouvoir compiler.Code:
1
2
3
4
5
6
7
8
9
10 program sortie ; uses wincrt; var n :char ; begin writeln('desirez vous quitter le programme :(o/n)'); readln(n); if n = 'o' then halt ; end.
Hui,
Je suis pour le moins surpris que ça puisse compiler comme ça, c'est un coup à mettre TPW à la poubelle !!
Ajoute une ligne d'affichage après celle qui contient le halt, car, dans l'état actuel, ton programme fait la même chose (du moins visuellement), que tu répondes 'o' ou 'n'.
Ainsi, si tu réponds o à la question, cette ligne ne doit pas s'afficher, et inversement si tu réponds autre chose.Code:
1
2
3
4
5
6
7
8
9
10
11 program sortie ; uses wincrt; var n :char ; begin writeln('desirez vous quitter le programme :(o/n)'); readln(n); if n = 'o' then halt(0) ; writeln('réponse <> de o !!'); end.
je veux que ça se ferme quand l'utilisateur tape 'o' sans qu'il clique sur la case X à droite du fenêtre
Kou,
J'ai bien compris, et c'est bien ce que doit faire le code indiqué :
- si tu réponds o à la question, il doit sortir immédiatement, sans exécuter
- pour toute autre réponse, cette ligne doit s'exécuter, et le programme doit se terminer normalement.Code:writeln('réponse <> de o !!');
Jue,
Bon, comme je ne comprenais pas ton problème, j'ai installé TPW (il a fallu également remettre le lecteur de disquettes :)).
Et je vois ce que tu veux dire : la fenêtre d'exécution du programme ne se ferme pas à la fin, elle devient seulement "inactive".
Comme je n'ai jamais utilisé TPW pour faire des applications de type console, je ne fais que constater le fait, et ne connais pas la réponse. Une recherche sur le réseau n'a rien donné pour l'instant.
Et pour le halt sans paramètre, c'est ok : ce paramètre est effectivement optionnel (j'avais oublié, car une telle sortie "brutale" d'un programme doit être réservée à une erreur non récupérable par le programme, et doit donc n'être utilisée qu'exceptionnellement, or, je sécurise toujours mes programmes côté entrées/sorties/calculs..., ce qui représente beaucoup de code, mais conduit à des logiciels "solides").
Merci beaucoup Drogg :D
A propos tu utilises quoi comme compilateur ? :roll:
Bonjour !
Je pense que pour que la fenêtre WinCRT de ton appli s'exécute et se ferme proprement, tu dois commencer ton programme par InitWinCRT et le terminer par DoneWinCRT.
;)