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 :

[langage] saisie utilisateur


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 12
    Points
    12
    Par défaut [langage] saisie utilisateur
    Bonjour,

    j'aimerai écrire un code qui permet de demander à l'utilisateur de saisir un texte ou une variable puis de récupérer ce texte ou cette valeur.
    Par exemple, je demande à l'utilisateur d'écrire un texte puis le programme édite ce texte en sortie.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/perl
     
    print "saisissez un texte";
     
    $saisie = <STDIN>;
    print("$saisie");
    je suis sous unix et j'utilise un éditeur qui est BBedit.

    merci

    caro

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    #!/usr/bin/perl -w
    use strict;
    use Carp;

    my $saisie;
    print "saisissez un texte\n";

    $saisie = <STDIN>;
    print "$saisie\n";

  3. #3
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    ouaich, c'est plus propre.
    Tu veux faire quoi concrètement Caro ? Tu bosses en ligne de commandes ?

    PS pour djibril : t'as une faute d'orthographe dans ta signature...
    Je ferais de mon mieux pour vous aider si possible telle est ma devise

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Merci Jeh,
    signature recitifiée .

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Citation Envoyé par djibril
    Merci Jeh,
    signature recitifiée .
    Et c'est pas "je ferai" ???

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Citation Envoyé par djibril
    #!/usr/bin/perl -w
    use strict;
    use Carp;

    my $saisie;
    print "saisissez un texte\n";

    $saisie = <STDIN>;
    print "$saisie\n";
    Petit peaufinage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    do
    {
        print "saisissez un texte\n";
        chomp($saisie = <STDIN>);
    } while (! $saisie);
    print "$saisie\n";

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci beaucoup,
    ca marche!

    Mais j'ai encore deux questions, a quoi sert le module use Carp?

    et comment peut-on écrire un code qui demande à l'utilisateur de saisir deux chiffres et les additionne ensuite?

    merci

    caro

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    use strict; => demande à Perl de vérifier que ttes les variables sont bien déclarées
    use Carp; => Recherche toutes les erreurs de syntaxe.
    le -w en premiere ligne demande l'affichage de warning.

    Pour ta deuxieme question, refléchie un peu, tu trouveras c'est simple.

  9. #9
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Il est dur le petit djibril
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    my $cpt=1;
    my @chiffres;
    while ($cpt<3) { 
        print "\nsaisissez le chiffre $cpt : "; 
        $saisie = <STDIN>; 
        chomp($saisie);
        if ($saisie =~ /^[0-9]$/) {
             push @chiffres,$saisie;
            $cpt++;
        } else {
            print "\nSaisie incorrecte.\n";
        }
    } # fin du for
    my $resultat = $chiffres[0] + $chiffres[1];
    print "resultat : $resultat";

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci bcp ca marche!

    j'avais trouvé un autre code ms beaucoup plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #!/usr/bin/perl -w
     
    use strict;
    use Carp;
     
    my $nb1;
    my $nb2;
    my $res;
     
    print "entrer un nb";
    $nb1 = <STDIN>;
     
    print "entrer un autre nb";
    $nb2 = <STDIN>;
     
    $res = $nb1 + $nb2;
    print "$res";
    ( on ne se moque pas, je débute)
    c'est beaucoup plus simple et ca marche!
    Donc il a raison quand même Djibril !


    merci donc!

    caro

  11. #11
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    c'est plus simple mais ça ne vérifie pas que ce sont bien deux chiffres qui ont été entrés et ça ne reprend pas la saisie si le caractère entré n'est pas un chiffre....

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 582
    Points : 2 030
    Points
    2 030
    Par défaut
    Je ne veux rien imposer mais le mieux est de passer par une boucle do while pour chaque demande de saisie. Tant que la saisie est invalide, ton programme reste dans la boucle et le seul moyen d'en sortir est que ce bourricot de user finisse ENFIN par taper ce qu'on lui a demandé

  13. #13
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    salut,

    qu'en est il lorsquon veut autoriser 2 saisies seulement, et reposer la question tant que la reponse nest pas lune des 2 reponses autorisees ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    do
    {
    print "Souhaitez-vous a present tracer le schema du reseau ? (o/n)\n"; 
    chomp($reponse = <STDIN>); 
    }
    while ( ($reponse ne o) || ($reponse ne n) ) ;
     
    print "$reponse\n";
    avec ce code, seule la reponse "o" est acceptee ?!
    merci

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    ok ca marche avec &&

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

Discussions similaires

  1. [VBA-EXCEL]bloquer la saisie utilisateur sur une colonne
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/06/2006, 14h37
  2. [Dates] Acquisition saisie utilisateur
    Par Goon dans le forum Langage
    Réponses: 18
    Dernier message: 09/02/2006, 13h09
  3. Reqête avec saisie utilisateur
    Par goutbouyo dans le forum Access
    Réponses: 10
    Dernier message: 07/12/2005, 16h34
  4. [langage] demande utilisateur sortie fichier
    Par perlaud dans le forum Langage
    Réponses: 2
    Dernier message: 29/07/2004, 17h23
  5. [langage] fin de saisie utilisateur
    Par Kinethe dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2004, 14h19

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