OVH Cloud OVH Cloud

pause

9 réponses
Avatar
Jean-Philippe Caruana
bonjour,

je suis sous windows + activeperl et nous executons certains scripts en
cliquant dessus (sans argument donc, avec leur comportement par défaut).
cependant, une fois l'execution terminée, la fenetre d'execution DOS se
ferme immédiatement.

comment faire pour avoir une pause dans l'execution d'un script perl du
type "appuyez sur une touche svp". le but est de permettre à
l'utilisateur de lire le résultat ?

merci d'avance


--
jpc
http://www.enstimac.fr/~caruana/

9 réponses

Avatar
Jacques Noël
je suis sous windows + activeperl et nous executons certains scripts en
cliquant dessus (sans argument donc, avec leur comportement par défaut).
cependant, une fois l'execution terminée, la fenetre d'execution DOS se
ferme immédiatement.

comment faire pour avoir une pause dans l'execution d'un script perl du
type "appuyez sur une touche svp". le but est de permettre à l'utilisateur
de lire le résultat ?


Bonjour,
Je suis dans une situation voisine, mais je ne connais pas la réponse.
Je suppose que la solution qui consiste à appeler le programme depuis
l'invite de commandes (DOS) ne vous convient pas. Elle permet de travailler
mais est moins pratique que le simple clic.

J'ai téléchargé récemment le script proposé sur un autre fil par M. Gaborit
pour décoder les regex, et disponible à l'adressse :
http://www.enstimac.fr/~gaborit/lang/perl/regexperiment.pl

Ce script peut être utilisé avec un clic et se maintient ouvert à l'écran
N'est ce pas à cause de l'emploi de "use Tk" ?

Cordialement

Jacques Noël

Avatar
Jean-Philippe Caruana
comment faire pour avoir une pause dans l'execution d'un script perl du
type "appuyez sur une touche svp". le but est de permettre à l'utilisateur
de lire le résultat ?


Je suppose que la solution qui consiste à appeler le programme depuis
l'invite de commandes (DOS) ne vous convient pas.


eh non ! il faut que les utilisateurs cliquent sur le fichier, a la
souris, sans feneter DOS. (moi dans mon coin, je le fais depuis une
fenetre DOS)

http://www.enstimac.fr/~gaborit/lang/perl/regexperiment.pl

Ce script peut être utilisé avec un clic et se maintient ouvert à l'écran
N'est ce pas à cause de l'emploi de "use Tk" ?


tk ouvre une fenetre en boucle infinie (en gros)
moi je ne fais que du traitement en mode texte, je n'ai pas besoin de
créer une interface graphique

il doit bien avoir un équivalent au 'pause' de MS-DOS, non ?

--
jpc
http://www.enstimac.fr/~caruana/


Avatar
Régis Caspar
Jean-Philippe Caruana wrote:
bonjour,

je suis sous windows + activeperl et nous executons certains scripts en
cliquant dessus (sans argument donc, avec leur comportement par défaut).
cependant, une fois l'execution terminée, la fenetre d'execution DOS se
ferme immédiatement.

comment faire pour avoir une pause dans l'execution d'un script perl du
type "appuyez sur une touche svp". le but est de permettre à
l'utilisateur de lire le résultat ?

merci d'avance


Bonjour,


Vous pouvez utiliser la commande "pause" du DOS, par exemple :

#!perl
print "hello world!";
##############
# la pause
print "nn";
system('pause');
##############

--
Régis Caspar

Avatar
Jean-Philippe Caruana
Bonjour,

Vous pouvez utiliser la commande "pause" du DOS, par exemple :
system('pause');


pas portable :-( (mais j'y ai pensé)
merci

--
jpc
http://www.enstimac.fr/~caruana/

Avatar
jl_morel
Dans l'article <con9bs$,
a dit...

je suis sous windows + activeperl et nous executons certains scripts en
cliquant dessus (sans argument donc, avec leur comportement par défaut).
cependant, une fois l'execution terminée, la fenetre d'execution DOS se
ferme immédiatement.

comment faire pour avoir une pause dans l'execution d'un script perl du
type "appuyez sur une touche svp". le but est de permettre à
l'utilisateur de lire le résultat ?



Pour ce genre de truc je place ça dans le script (n'importe où) :

END{
print "nAppuyez sur [Enter]";
<STDIN>;
}

Il faut appuyer sur la touche [Enter]. C'est très rustique.
Plus élaboré, on peut utiliser dans le même genre :

END{
use Term::ReadKey;
# PROMPT pour NT/2000/XP, CMDLINE pour 95/98
if (!defined $ENV{PROMPT} or
(defined $ENV{CMDLINE} and $ENV{CMDLINE} eq 'WIN')) {
print "nAppuyez sur une touche svp ...";
ReadMode 4;
ReadKey 0;
ReadMode 0;
}
}

Là, avec Term::ReadKey, il suffit d'appuyer sur une touche quelconque.
On teste la variable d'environnement $ENV{PROMPT} pour savoir si le script
a été lancé depuis une console (alors on ne fait rien); sinon on attend
qu'une touche soit pressée pour terminer.

HTH

--
J-L.M.

Avatar
Jack
Le 02/12/2004 17:19, :
Bonjour,

Vous pouvez utiliser la commande "pause" du DOS, par exemple :
system('pause');



pas portable :-( (mais j'y ai pensé)
merci

Pas portable?

sleep perl?
génerer un temp, exec d'un traitement de texte?


Avatar
Régis Caspar
Jean-Philippe Caruana wrote:
Bonjour,

Vous pouvez utiliser la commande "pause" du DOS, par exemple :
system('pause');



pas portable :-( (mais j'y ai pensé)
merci

?????


Je vous cite : << je suis sous windows + activeperl et nous executons
certains scripts en cliquant dessus ... fenetre DOS ...>> Portable vers
quoi ????

--
Régis Caspar


Avatar
Jean-Philippe Caruana
Là, avec Term::ReadKey, il suffit d'appuyer sur une touche quelconque.
On teste la variable d'environnement $ENV{PROMPT} pour savoir si le script
a été lancé depuis une console (alors on ne fait rien); sinon on attend
qu'une touche soit pressée pour terminer.


merci bcp, c'est le genre de réponse que j'attendais
je teste cela (mais ca va marcher je pense)

--
jpc
http://www.enstimac.fr/~caruana/

Avatar
Jean-Philippe Caruana

Jean-Philippe Caruana wrote:

Bonjour,

Vous pouvez utiliser la commande "pause" du DOS, par exemple :
system('pause');




pas portable :-( (mais j'y ai pensé)
merci

?????


Je vous cite : << je suis sous windows + activeperl et nous executons
certains scripts en cliquant dessus ... fenetre DOS ...>> Portable vers
quoi ????


sait-on jamais... je préfère prévenir que guérir

--
jpc
http://www.enstimac.fr/~caruana/