Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1144 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Interprétation de variable dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interprétation de variable dans un fichier

n°1764756
anouar_st
adrissi
Posté le 25-07-2008 à 12:06:10  profilanswer
 

plzzzzzzzzzzzzzzzz aider moi

 

Bonjour,

 

Je me demande lla solution a un petite problem. Je recupere  un  chemin a partir d un fichier text par exemple /home/$TECHNO

 

Avec $TECHNO une variable declarer a l interieur de mon programme l'erreur c'est que il me donne pas le contenu de $TECHNo mais il la recopier tel qu il est

 


  voici le code d appel

 


   sub options2
    {
      open (CFG, @_[0]) || die "Cannot open config file $!";  ## avec  @_[0] est un fichier donner en parametre  
                                                                                   ##lors de l appel

 

     foreach (<CFG> )
              {

 

              if(/^\$PATH_DKVERSION/)
                {
                  @t13=split(/=/,$_);

 

                 $PATH_DKVERSION="$t13[1]";

 

                  print "$PATH_DKVERSION \n";
   

 

                    }
                   }
       close CFG;
                   
     }

 


Dans le fichier text j ai la ligne suivant :    $PATH_DKVERSION=/home/imgana/$TECHNO/$DK=

 

lors de l execution il me donne le chemin tel qu il est   /home/imgana/$TECHNO/$DK   moi ce que je veux c'est plus de /home/imgana il doit recuperer le contenu de mes variables  $TECHNO/$DK

 

Svp  aide moi.

 


reponde par mail  <effacé par Elmoricq>


Message édité par Elmoricq le 25-07-2008 à 12:08:59
mood
Publicité
Posté le 25-07-2008 à 12:06:10  profilanswer
 

n°1764763
Elmoricq
Modérateur
Posté le 25-07-2008 à 12:09:55  profilanswer
 

Poste édité, découpé, et doublons fermés.
 
Merci de ne pas créer des tas de topics pour ton problème, et de faire des efforts sur l'orthographe. De plus, les réponses se font sur le forum, pour pouvoir aider ceux qui rencontreraient un problème similaire.

n°1764790
anouar_st
adrissi
Posté le 25-07-2008 à 12:28:28  profilanswer
 

qu'est ce que tu dis exactement

n°1764805
gatsu35
Blablaté par Harko
Posté le 25-07-2008 à 12:46:33  profilanswer
 

Il te dis juste que ca sert à rien de créer 50 topics avec la même question.
Et si tu persistes tu risques de te prendre un ban
et aussi les réponses doivent être faites dans ce topic et pas autrement

n°1764838
anapajari
s/travail/glanding on hfr/gs;
Posté le 25-07-2008 à 13:36:17  profilanswer
 

Code :
  1. use Config::File;
  2. my $config_hash = Config::File::read_config_file($configuration_file);

Message cité 1 fois
Message édité par anapajari le 25-07-2008 à 13:36:26

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1764842
Elmoricq
Modérateur
Posté le 25-07-2008 à 13:40:37  profilanswer
 

anouar_st a écrit :

qu'est ce que tu dis exactement

 

Tu as créé plusieurs fois le même topic en fait, donc j'ai dû fermer les deux autres pour ne pas faire doublon.
De plus, on ne répond pas par mail pour deux raisons :

  • HFr est parsé par google donc, potentiellement, tu peux subir du spam à foison en laissant ton adresse mail dans un post
  • Un forum est, par définition, collaboratif : une réponse apportée à quelqu'un peut servir à d'autres personnes ayant le même problème


Sinon, pour ton problème, il suffit d'une regexp pour demander à PERL d'interpréter ta variable.
Je te propose ce snippet, tu ne devrais pas avoir de mal à l'adapter à ton besoin :

Code :
  1. #! /usr/bin/perl
  2.  
  3. use strict;
  4.  
  5. my $foobar = '/home/$USER';
  6.  
  7. print "Variable non interprétée, comme dans ton problème donc : $foobar\n";
  8.  
  9. # but de la regexp : récupère tout ce qu'il y a après un '$' jusqu'à trouver un / ou une fin de ligne
  10. # la seconde partie interprète avec le hashage %ENV le contenu de la variable récupérée dans $1
  11. # $2 contient quant à elle / ou <fin de ligne>
  12. $foobar =~ s#\$(.*?)(/|$)#$ENV{$1}$2#g;
  13.  
  14. print "Variable interprétée : $foobar\n";
 

À l'exécution ça donne ça :

$ perl taiste.pl
Variable non interprétée, comme dans ton problème donc : /home/$USER
Variable interprétée : /home/Elmoricq
$

 

Plus d'information ici sur les regexp : http://perldoc.perl.org/perlre.html
Et pour le hâchage %ENV : http://perldoc.perl.org/perlvar.html (chercher %ENV dans la page)


Message édité par Elmoricq le 25-07-2008 à 13:51:42
n°1764846
Elmoricq
Modérateur
Posté le 25-07-2008 à 13:49:14  profilanswer
 

anapajari a écrit :

Code :
  1. use Config::File;
  2. my $config_hash = Config::File::read_config_file($configuration_file);


 

J'connaissais pas mais, en même temps, j'ai pas ce module d'installé, et c'est la croix et la bannière pour ajouter un module PERL chez nous (sécurité, tests, etc) :D

 

Mais ça a l'air pas mal du tout :jap:


Message édité par Elmoricq le 25-07-2008 à 13:49:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Interprétation de variable dans un fichier

 

Sujets relatifs
problem de recuperation du contenu d variable sous perlproblem de recuperation du contenu d variable sous perl
Remplir BDD mysql a partir d'un fichier XMLRecherche dans un fichier binaire
un fichier css est détecté comme un troyen.ecrire dans un fichier sur Windows CE
Malloc / Lecture fichier[résolu] Boucle fichier dans un repertoire
importé un fichier excel 
Plus de sujets relatifs à : Interprétation de variable dans un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR