IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

automatiser un programme à l'aide de perl


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut automatiser un programme à l'aide de perl
    Bonjour,
    j'ai pour "mission d'automatiser un programme. j'ai donc decider d'apprendre perl.
    je vois bien qu'il est possible à l'aide de la fonction system de lancer le programme et de recuperer les informations dans un fichier. Mais ce programme pose des questions dans la console, hors une fois lancé, je n'ai plus la main dans le script. comment puis-je lancer le programme, lire les questions , les interpreter afin de repondre convenablement ???

    merci par avance

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Utilise le module "Expect".
    Tu peux aussi essayer open3 si Expect ne te convient pas.

    --
    Jedaï

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ok merci...
    ai installé le module et lu a peu pres toutes les docs disponibles...
    néanmoins, vu que je debute totalement en perl, j'arrive seulement à envoyé à la console les reponses aux questions mais je n'arrive pas à lire les questions et dc les interpreter..
    que dois-je utiliser?

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si tu concatène before(), matching() et after(), tu obtiens exactement le texte qui a été renvoyé par ton programme, donc ta question.

    --
    Jedaï

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Encore une fois merci !!!

    Mais je ne comprends pas comment il faut employer ces fonctions.
    Dans un premier temps je crée un object Expect ( my $exp = new Expect(), puis je lance une commande avec la fonction spawn($command) et enfin je reponds aux différentes questions à l'aide de send(" *****")
    pour utiliser before, after et match, je fais : my $a = $exp->before(); , puis lorsque je print $a , la console me renvoie :Use of uninitialized value in print.
    faut -il utiliser autre chose que print ?



    3 jours non-stop dessus, c dur mais je continue a lutter ....

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Montre moi un peu à quoi ressemble un dialogue typique avec ton programme sur la ligne de commande. Il faut que tu fasse un expect() avant que les variable before() et cie soit remplie.

    --
    Jedaï

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    alors , c'est tres simple. lorsque j'execute mon programme (modelisation modelculairre.. peut importe), selon le fichier qu'il lit, il demande les opérations qu'il doit effectuer. Par exemple: TAPEZ oui si ..... ou non si .... .
    pour automatiser cela, il m'est donc necessaire de connaitre la question afin de repondre correctement.
    mon probleme est que je n'ai pas comment remplir les variables before () et ci .. et ensuite les afficher...

    je sais pas si j'ai été plus clair...

    merci

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ok, je viens de comprendre. Dans match() il faut mettre le string que l'on recherche, il faut donc connaitre une partie de la question (au moins)...
    Merci pour votre aide

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Non, il faut juste que tu utilises expect() pour reconnaître la fin de la question (par exemple s'il s'agit d'un point), puis tu reconstitues la question avec before() et cie, puis tu fais ton send() de la réponse ensuite.

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. demande d'aide en perl
    Par nanouchka dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2006, 22h04
  2. Aide script perl
    Par donmamio dans le forum Langage
    Réponses: 10
    Dernier message: 08/08/2006, 17h34
  3. Inclusion programme C dans script perl
    Par duedos dans le forum Langage
    Réponses: 10
    Dernier message: 09/07/2006, 00h20
  4. Changer son pseudo msn à l'aide de Perl
    Par FoxDragon dans le forum Web
    Réponses: 1
    Dernier message: 05/04/2006, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo