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 :

déclaration variable dans un module


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut déclaration variable dans un module
    Bonjour,

    Je suis en train de créer des scripts à utiliser avec un outil permettant d'évaluer les protocoles d'un terminal mobile sur un réseau cellulaire.
    l'outil permettant d'obtenir des fichiers LOG est développé sous PERL et n'accepte que des scripts PERL.

    L'objectif de mon script est de récupérer la puissance d'un signal radio contenu dans le fichier LOG généré par l'outil de traces.

    Je vous mets un lien pour le script que j'essaie de faire fonctionner.
    Vous pouvez constater line 89 la variable "$BestCamped qui représente tous les valeurs de la puissance du signal du fichier log. Toutes la partie de code avant cette ligne permet de récupérer l'ensemble des valeurs.
    line 90, je fais un print et je peux afficher les valeurs dans la Fenêtre DOS.

    Le problème est le suivant: je souhaite copier l'ensemble de ces valeurs dans un tableur Excel.
    cependant, la variable $BestCamped est déclarée dans la fonction: sub Analyze.
    la création de l'environnement excel pour l'affichage des données est effectuée dans la fonction sub PopulateExcelSpreadsheet. Par conséquent, je ne peux pas récupérer la variable $BestCamped line 123 permettant de mettre les valeurs dans le tableur Excel.

    Comment puis-je faire pour récupérer la variable contenu dans l'autre module Sub Analyze, afin de l'utiliser dans la seconde fonction ?

    Si vous avez des idées, n'hésitez pas..

    Jem.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Pourquoi tu ne renvois pas ta variable $BestCamped par ton return ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut
    Mon return retourne une variable permettant de gérer l'interface de l'outil de traces.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Ben c'est toi qui choisi ce que tu renvois. Si tu veux renvoyer, un tableau, une référence à un tableau, it is up to you.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut
    Si ton problème est que tu ne peux appeler depuis ton analyseur que ds fonctions de ton module, tu peux déclarer $BestCamped comme variable globale du module, tout comme my $IISF; ce n'est pas ce qu'il y a de plus 'propre' mais... à la guerre comme à la guerre.

    De sorte que depuis ton analyseur, tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Analyze();
    PopulateExcelSpreadsheet();

    Tu peux aussi imaginer d'appeler PopulateExcelSpreadsheet depuis la f° Analyze() en lui passant en paramètre $BestCamped.

    Enfin, si ton problème c'est qu'il y a toute une série de $BestCamped - j'ai un peu de mal à comprendre ce que tu veux faire - tu peux utiliser un tableau déclaré en global my @taBestCamped. Dans la f° Analyze(), il suffit de vider la tableau au début de la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $#taBestCamped = -1;
    puis à l'endroit où tu fais ton print "CellCamped, $BestCamped\n";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    push @taBestCamped $BestCamped;
    Il ne te reste plus qu'à utiliser @taBestCamped dans la fonction PopulateExcelSpreadsheet pour en faire ce que tu veux grâce à un boucle du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    my $iLigne = 1;
    $Sheet->Cells( 1, 1 )->{Value} = "Time";
    $Sheet->Cells( 1, 1 )->Font->{Bold} = true;
    $Sheet->Cells( 1, 2 )->{Value} = "Energy";
    $Sheet->Cells( 1, 2 )->Font->{Bold} = true;
     
    for my $iVal @taBestCamped 
    {
    $iLigne++;
    $Sheet->Cells( $iLigne, 2 )->{Value} = $iVal;
    }
    PS : je ne vois pas d'où viennent les infos de la colonne 'Time'

    PS2 : je n'ai pas compilé.

  6. #6
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut
    Merci pour le conseil

    J'ai déclaré une nouvelle variable globale que j'ai associé à la variable BestCamped dans le module permettant de gérer l'affichage sous Excel. Ca marche !!


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/12/2008, 19h48
  2. Problème de variables dans un module
    Par "Rone" dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 14/10/2008, 11h46
  3. récupération valeur variable dans autre module
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/10/2008, 16h53
  4. Déclaration variable dans un intervalle
    Par abdelilah dans le forum C
    Réponses: 13
    Dernier message: 24/11/2007, 11h46
  5. Problème déclaration variable dans "if"
    Par doremib dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 17/07/2007, 12h42

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