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] la commande binmode


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 68
    Par défaut [langage] la commande binmode
    Bonjour,

    j'utilise la commande binmode dans un bout de code que j'ai trouvé qui sert à saisir un password en caché :

    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
    	$| = 1;	# unbuffer stdout
    	my $pwd = '';
    	if (0) {
     
    		print "Password: ";
    		ReadMode ('noecho');
    		$pwd = ReadLine ();
    		chomp $pwd;
    		ReadMode ('restore');
     
    	} else {
     
    		binmode STDIN;
    		print "Password: ";
    		ReadMode ('cbreak');
    		while (defined (my $ch = ReadKey ())) {
     
    			last if $ch eq "\x0a" or $ch eq "\x0d";
    			if ($ch eq "\x08") {	# backspace
    				print "\b \b" if $pwd;		# back up 1
    				chop $pwd;
    				next;
    			}
    			if ($ch eq "\x15") {	# ^U
    				print "\b \b" x length $pwd;	# back 1 for each char
    				$pwd = '';
    				next;
    			}
    			$pwd .= $ch;
    			print '*';
    		}
    		ReadMode ('restore');
    	}
    Donc mon problème est le suivant : comment faire l'inverse de binmode pour pouvoir réutiliser la commande <STDIN> en ascii ?

    Merci d'avance pour votre aide...

  2. #2
    Expert confirmé
    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
    Par défaut
    Binmode te permet de spécifier le mode de lecture du handle en tant que deuxième paramètre (du moins depuis la 5.8 ), la valeur par défaut étant "raw" bien sûr.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 68
    Par défaut
    Ah..... Ah..... mais tu as bien fait de me mettre sur la voie, ca m'a permis de comprendre comment binmode fonctionnait :

    2 modes :
    Donc la solution est à mon problème est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    binmode (STDIN, ":crlf");
    Merci bien Jedai

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

Discussions similaires

  1. protocole de Langage de Commande Routier (LCR)
    Par acastor dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 19/01/2004, 10h25
  2. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08
  3. Réponses: 3
    Dernier message: 07/04/2003, 20h06
  4. [langage] Commande Unix en Perl
    Par totox17 dans le forum Langage
    Réponses: 3
    Dernier message: 20/11/2002, 10h59
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

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