[PERL] Acquisition écran

sandrill0n Messages postés 81 Statut Membre -  
sandrill0n Messages postés 81 Statut Membre -
Bonjour,

Je souhaiterais faire une saisie écran et traiter l'info en PERL.
Exemple :
"Nom du fichier ?"
réponse (à stocker dans la variable $name)

et ensuite utiliser $name pour pouvoir plusieurs fichiers avec un seul programme en PERL (au lieu d'en faire 7 pour les 7 fichiers à ouvrir)

En fait se serait l'équivalent d'un "sscan" en C.

Ou alors est-ce que je doit faire un fichier texte avec tous les noms des fichiers, et je scrute ce fichier ?

Sachant que par la suite je souhaiterais automatiser le tout par un CRON

Merci

2 réponses

  1. dedale82 Messages postés 403 Statut Membre 283
     
    Salut,
    je ne suis pas sur d'avoir compris mais si tu veux recuperer la frappe d'un utilisateur tu peux faire comme ca :

    $name = <STDIN>;

    A plus
    0
  2. sandrill0n Messages postés 81 Statut Membre
     
    en fait je souhaite faire ça :
    print "Nom du fichier a analyser ?\t\n";
    $name_file = <STDIN>;
    
    #chop ($name_file = $_);
    
    SWITCH : {
    	/sm2.5/ and $name_file = sm2_5, last SWITCH;
    	/sm3.0/ and $name_file = sm3_0, last SWITCH;
    	/sm3.5/ and $name_file = sm3_5, last SWITCH;
    	/sm5ap/ and $name_file = sm5ap, last SWITCH;
    	/sm5cb/ and $name_file = sm5cb, last SWITCH;
    	/sm5lp/ and $name_file = sm5lp, last SWITCH;
    	/hdtmos/ and $name_file = hdtmos, last SWITCH;
    	$nothing = 1;
    }
    
    #chop ($techno =$_);
    
    SWITCH : {
    	if ($name_file =~ /sm2_5/) { $techno = SM2.5; last SWITCH; }
    	if ($name_file =~ /sm3_0/) { $techno = SM3.0; last SWITCH; }
    	if ($name_file =~ /sm3_5/) { $techno = SM3_5; last SWITCH; }
    	if ($name_file =~ /sm5ap/) { $techno = SM5AP; last SWITCH; }
    	if ($name_file =~ /sm5cb/) { $techno = SM5CB; last SWITCH; }
    	if ($name_file =~ /sm5lp/) { $techno = SM5LP; last SWITCH; }
    	if ($name_file =~ /hdtmos/) { $techno = HDTMOS; last SWITCH; }
    	$nothing = 1;
    }
    code>
    
    
    use FileHandle;
    
    $LECT  = FileHandle->new();
    $FileName = "/home/synergy/sisa01c/PERL_DEV/Fichier_Log/$name_file.log";
    
    open $LECT, $FileName || die ("Impossible d'ouvrir fichier log en lecture");
    if ($name_file =~ /sm2_5/ || $name_file =~ /sm3_0/ || $name_file =~ /sm3_5/ || $name_file =~ /hdtmos/) {
    	open(OUTFILE,">/home/synergy/sisa01c/PERL_DEV/Pareto_Lot_SM3_HDTMOS.txt") || die ("Impossible d'ouvrir fichier txt en ecriture");
    }
    else {
    	if ($name_file =~ /sm5ap/ || $name_file =~ /sm5cb/ || $name_file =~ /sm5lp/) {
    		open(OUTFILE,">/home/synergy/sisa01c/PERL_DEV/Pareto_Lot_SM5.txt") || die ("Impossible d'ouvrir fichier txt en ecriture");
    	}
    }
    </pre>
    0