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] Probleme de variable transfert de contenu


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut [langage] Probleme de variable transfert de contenu
    Rebonjour a tous,



    voilà j'ai le probleme suivant dans ma variable $WS_ROOT j'ai une valeur par exemple pipo et le probleme qui se presente est que dans la variable au final $VarTemp j'ai $VarTemp = '$WS_ROOT'
    et que $WE_ROOT = VarTemp;
    mais le probleme c que je voudrais avoir dans $WE_ROOT pipo normalement mais j'y arrive pas
    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
     
     print $FileLine;
            $Index2 = index($FileLine,'=');
            $WS_ROOT = substr($FileLine,$Index2 + 1);
            $Index2 = 0;
            $Index1++;
            }
          elsif ($Index1 == 1)
            {
            print $FileLine;
            $Index2 = index($FileLine,'=');
            $VarTemp = substr($FileLine,$Index2 + 1);
            $VarTemp =~ s/\(|\)//g;
            $WE_ROOT = $VarTemp;     
            }
    Merci d'avance

    j'espere avoir été assez claire

    Ludo

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 90
    Points : 96
    Points
    96
    Par défaut
    je me demande si tu n'as pas le pb suivant

    si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $variable = 0;
    my $test = '$variable';
    print "TEST VAUT:$test\n";
    tu auras en sortie TEST VAUT:$variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $test = "$variable";
    print "TEST VAUT:$test\n";
    tu auras en sortie TEST VAUT:0

    avec les simple quote '', la variable n,est pas interpretee
    avec "" les variables sont interpretees

  3. #3
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    Le probleme c'est que par defaut les variable sont entre simple quote.
    donc comment changer ca!!!


    c ca le probleme

  4. #4
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Tes explications sont d'une clarté limpide et le fait que le code soit partiel (il y a un else, mais pas de if ??) n'arrange pas les choses, pourrais-tu reformuler ta question en donnant un exemple de donnée de départ et de résultat à obtenir, ainsi qu'un bout de code complet ?

    --
    Jedaï

  5. #5
    Membre actif
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Points : 235
    Points
    235
    Par défaut
    Rien compris non plus Donne un exemple precis annoté s'il te plait...

  6. #6
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut RE bonjour a tous je vais réexpliquer mon probleme
    Bonjour a tous,

    Je vais réessayer d'expliquer mon probleme en étant plus claire, voici mon probleme, je lis un fichier qui contient des valeurs dont je veux recuperer je recupere donc ma premiere valeur et je la stocke dans WS_ROOT cette valeur est le path d'une appli ensuite je continue a chercher ds le fichier pour chercher un autre mot clé qui est est contenu ds mon tableau @Exprs qd je trouve mon clé je recupere ma variable correspondante ce mot clé WE_ROOT est vaut $(WS_ROOT) donc ensuite donc d'enlever les parentheses pour avoir seulement $WS_ROOT une fois que j'ai cette valeur je veut que perl reconnaisse que ces la variable $WS_ROOT et qu'il me stocke donc ds WE_ROOT le contenu de WS_ROOT soit le path.

    En conclusion apres traitement cela equivaut que $WE_ROOT = $WS_ROOT

    voilà le code :
    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
     
      my @Exprs = ("WS_ROOT =", "WE_ROOT =", "CXXINCLUDES =","WIND_BASE_F =","TGT_DIR =");
     
      select (NEW);
      # glance through this file
      while ($FileLine = <LINT>)
        {
        if ( ($Index1 <= $#Exprs) && ($FileLine =~ /^(.*)$Exprs[$Index1](.*)$/) )
          {
          if ($Index1 == 0)
            {
            print $FileLine;
            $Index2 = index($FileLine,'=');
            $WS_ROOT = substr($FileLine,$Index2 + 1);
            $Index2 = 0;
            $Index1++;
            }
          elsif ($Index1 == 1)
            {
            print $FileLine;
            $Index2 = index($FileLine,'=');
            $VarTemp = substr($FileLine,$Index2 + 1);
            $VarTemp =~ s/\(|\)//g;
            $VarTemp = "$VarTemp";
            $WE_ROOT = "$VarTemp";
            }
    J'espere avoir été plus clair j'ai po mis la suite du code car c long et ss importance pour le probleme voilà.

    Merci d'avance

    Ludo

  7. #7
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Un code comme cela devrait faire l'affaire :
    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
     
    my @Exprs = ("WS_ROOT =", "WE_ROOT =", "CXXINCLUDES =","WIND_BASE_F =","TGT_DIR =");
     
    select (NEW);
    # glance through this file
    while ($FileLine = <LINT>)
    {
        if ( ($Index1 <= $#Exprs) && ($FileLine =~ /^(.*)$Exprs[$Index1](.*)$/) )
        {
            if ($Index1 == 0)
            {
                print $FileLine;
                $WS_ROOT = ($Fileline =~ /=(.*)/);
                $Index1++;
            }
            elsif ($Index1 == 1)
            {
                print $FileLine;
                $VarTemp = ($Fileline =~ /=(.*)/);
                $VarTemp =~ tr/()//d;
                $WE_ROOT = eval $VarTemp;
            }
    Cependant, je ne suis pas sûr du tout que ton approche soit la bonne, peut-être pourrions mieux t'aider si tu nous disais ce que tu veux faire à la base.

    --
    Jedaï

  8. #8
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    En faite j'ai des valeurs de variables a recuperer et a initialiser car dans ce fichier voici les variables :
    WS_ROOT = Z:/essai/source
    WS_ROOT_PLAIN = Z:/essai/source
    # for compatibility
    WE_ROOT = $(WS_ROOT)
    WORKSPACE_ROOT = $(WS_ROOT)

    CXXDEFINES = -DCPU=SIMNT -U__WINNT -UWIN32 -U__WINNT__ -UWINNT -U__MINGW32__ -U_WIN32 -U__WIN32 -U__WIN32__ -U__WIN32 -DRW_MULTI_THREAD -U_REENTRANT -D_STLP_NATIVE_INCLUDE_PATH=$(TGT_DIR)/h -D_STLP_NATIVE_C_INCLUDE_PATH=$(TGT_DIR)/h
    CXXFLAGS = -c -mpentium -nostdinc -nostdlib -fno-builtin -fno-defer-pop -O2
    CXXINCLUDES = -I$(WE_ROOT)/libraries -I$(WE_ROOT)/include/stlport -I$(WE_ROOT)/navicore -I$(WE_ROOT)/navicore/include -I$(WE_ROOT)/navicore/common -I$(WE_ROOT)/navicore/common/dbalib/include -I$(WE_ROOT)/navicore/modules $(SNIFF_INCLUDES) -I$(TGT_DIR)/h -I$(WE_ROOT)/include
    CPP_ARRIBA_GLOBALS = -DTARG -DTARGSYS -DDEVENV_sh3 -DAPI_TYPE_RIF -DMEM_CFG_F400B -DPSOS -DIDIS -DEUROPEAN_DB -DNICE_MAP -DDISPLAY_LOC_ONROAD -DVP_STATISTIC -DVP_PATTERN -DFM_USE_STREAM_IO -DGERMAN_LANGUAGE -DNTOS_MALLOC -DGS10 -DCDROM -DEEPR_MNG_MIN_DATA -DUIF_RC1 -DDISP_ASH4 -DKEYPROC_H10 -DUSELOGPAL -DVXWORKS -DARRIBA -DNAVIDEBUG_OUTPUT -DPOI_FLAT -DOSLIB_VXWORKS -DOSLIB_NATIVE -DTG_21 -DSE_EMBED
    CXXOUTPUT_FLAG = -o "$@"
    CXX = ccsimpc

    # BuildTool: Common Definitions
    TOOL = gnu
    WIND_BASE_F = $(subst $(BACKSLASH),/,$(WIND_BASE))
    CPU = SIMNT
    MUNCH = wtxtcl $(WIND_BASE_F)/host/src/hutils/munch.tcl -asm simpc
    TGT_DIR = $(WIND_BASE_F)/target
    CPP = ccsimpc -E -P -xc
    COMPILE_TRADITIONAL = ccsimpc -c -fdollars-in-identifiers -U__WINNT -UWIN32 -U__WINNT__ -UWINNT -U__MINGW32__ -U_WIN32 -U__WIN32 -U__WIN32__ -U__WIN32 -mpentium -ansi -nostdinc -g -nostdlib -fno-builtin -fno-defer-pop -Wall -DRW_MULTI_THREAD -D_REENTRANT
    BACKSLASH = $(subst x,\,x)
    NM = nmsimpc -g

    comme on peut le voir certaines variables sont utlulisés dans d'autres variables c pourquoi je veux enlevé les parentheses et merci pour la solution qd j'ai voulu marqué resolu tu venait de mettre ta solution j'ai fait pareil avec eval()


    Merci a tous

  9. #9
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    Bonjour,


    juste pour info Jedai cette partie de code ne marche pas il me renvoit 1 pour WS_ROOT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            print $FileLine;
            $WS_ROOT = ($FileLine =~ /=(.*)/);
            $Index1++;
    voilà voilà

  10. #10
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    Désolé, petite erreur, j'aurais du écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ($WS_ROOT) = ($FileLine =~ /=(.*)/);
    Et la même chose pour $Vartemp plus bas.

    --
    Jedaï

  11. #11
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    Merci a toi pour cette aide ca fonctionne


    Bon courage pour la suite

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

Discussions similaires

  1. [langage] probleme sur test d'une variable
    Par Melvine dans le forum Langage
    Réponses: 11
    Dernier message: 25/10/2006, 19h31
  2. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25
  3. Réponses: 2
    Dernier message: 04/01/2004, 15h14
  4. Réponses: 3
    Dernier message: 07/04/2003, 20h06
  5. [langage]Problème de temps de lecture, optimisation
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2003, 08h47

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