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

Programmation et administration système Perl Discussion :

Saisir des phrases.


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut Saisir des phrases.
    Bonjour, je voudrais savoir comment faire pour que mon utilisateur puisse saisir une chaine de caractère aussi longue qu'il le désire et qui puisse être interrompu par l'utilisateur à n'importe quel moment.

    J'espère que les explications sont claires. D'autres part j'aimerais savoir comment protéger cette chaîne contre une saisie malveillante.

    Les informations saisies seront utilisées pour traitement antérieur.

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    <STDIN> ne te suffit pas ?

    D'autres part j'aimerais savoir comment protéger cette chaîne contre une saisie malveillante.
    C'est à dire ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut
    STDIN va s'interrompre sur la saisie de "entrée" par l'utilisateur or j'aurai besoin du caractère '\n' dans ma saisie utilisateur pour séparer les "enregistrements".

    Je pense qu'avec ces besoins le STDIN ne suffira pas.

    Sinon pour la protection en fait je veux empêcher que l'utilisateur puisse faire autre chose que ce qu'il doit faire. C'est vagues comme explications en même temps ça correspond tout à fait à mon cahier des charges. Je suis pas très documenter sur l'aspect sécurité des scripts Perl mais le langage à l'air plutôt permissif donc je me méfie.

  4. #4
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Bon, il existe ce module Text::LineEditor très simple d'utilisation qui te permet de faire une saisie multi ligne. Il est assez rudimentaire, mais te permettra de faire ce que tu veux.
    Une fois que l'utilisateur à taper son texte, il tape ~. + entree pour sortir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
    use strict;
    use warnings;
    use Text::LineEditor;
     
    my $saisie = line_editor();
     
    print "Voici la saisie : saisie\n";
    ensuite, pour la sécurité, à toi de tester le contenu de la variable $saisie.

    Teste ce module, je vais essayer de voir s'il y en a des récents plus puissant qui font du multiligne.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut
    Pour le moment j'ai résolu mon problème de saisi de ligne.

    Avec while et STDIN.

    Je suis quand même preneur de fonction pour faire des saisies multiligne ça allégerai un peu le script et puis c'est toujours bon à savoir

    Merci de ton aide djibril.

  6. #6
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Sincèrement le plus propre est d'utiliser le module ci-dessus ou un GUI temporaire.
    Je t'ai fait une procédure Tk.

    Voici un exemple de script :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #!/usr/bin/perl
    use strict;
    use warnings;
    use Tk;
     
     
    my $Saisie = SaisirTexteMultiligne("Saisissez un texte : ");
     
     
    print "Voici le resultat de ma saisie :$Saisie\n";
     
     
    sub SaisirTexteMultiligne {
      my ($Message) = @_;
     
     
     
      my $LaSaisie; 
      my $Fenetre = new MainWindow(-background => "#6699CC",);
      $Fenetre->title("Editeur de texte");
      $Fenetre->Label(
        -text => $Message,
        -background => "#6699CC",
      )->pack( qw/ -fill x -expand 0/ );
     
      my $Text = $Fenetre->Scrolled("Text",
        -scrollbars => "osoe",
        -height    => 20,
      )->pack( qw/ -fill  both -expand 1/ );
      $Fenetre->Button(
        -text => "OK",
        -width => 10,
        -command => sub {
          #$Fenetre->destroy;
          $LaSaisie = $Text->get("1.0", 'end');
          $Fenetre->destroy;
        }
      )->pack();
      $Text->focus;
      MainLoop;
     
      return $LaSaisie;
    }

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

Discussions similaires

  1. concatener des "phrases" dans un char*
    Par thierry_b dans le forum C
    Réponses: 3
    Dernier message: 13/11/2005, 11h45
  2. [PL/SQL] Saisir des données a partir du clavier
    Par future dans le forum Oracle
    Réponses: 11
    Dernier message: 30/03/2005, 12h12
  3. [SQL] Ma requête m'oblige à saisir des valeurs manuellement
    Par bossun dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/10/2003, 13h29
  4. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23

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