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

Programmation et administration système Perl Discussion :

Determination d'un numéro de colonnes


Sujet :

Programmation et administration système Perl

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut Determination d'un numéro de colonnes
    Bonjour,

    Mon script fonctionne mais je n'arrive pas à attraper la valeur qui m'intéresse
    Voic la valeur de mon tableau "@tab"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Nbre de session NX active :       22
     Nbre de session NX active :       22
     Nbre de session NX active :       22
     Nbre de session NX active :       22
     Nbre de session NX active :       23
     Nbre de session NX active :       23
     Nbre de session NX active :       23
     Nbre de session NX active :       23
     Nbre de session NX active :       23
     Nbre de session NX active :       23
     Nbre de session NX active :       23

    Voci mon l'extrait de mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    my @list ;
    my @tab=grep (/active/, @file);
    #print "@tab \n";
     
    foreach my $value (@tab) {
    my @value=split(/ /, $value);
    push(@list, $value[5]);
    }
     
    print "@list\n" ;
    Mon soucis est que la valeur "$value[5]" correspond à l'emplacement des deux point ":" de la liste précédemment donnée. Si je prend $value[6], le tableau @list est vide et cela jusqu'à $value[10] et encore je n'ai pas toutes la colonne du nombre de session active cela doit sauter certaine valeur ....

    Comment corriger mon script pour que je n'aie que la colonne des nombres du tableau "@tab"?

  2. #2
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Salut !

    A l'arrache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @list = map { $& if /\d+/} @tab;
    Ca passe ca ou pas ?

    @+
    Mr6
    *coup de vent, a la bourre...*

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    Nickel ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23
    Du coup je ne suis pas obligé de faire de boucle .....
    Je vais chercher de la doc pour la fonction map mais je veux bien des petites explication

    Pour info, j'avais résolu en prenant "$value[12]" mais par rapport à la fonction map cela à l'air relou maintenant

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    map est une fonction magique en perl (j'en compte plusieurs comme celle-ci, des indispensables : grep, sort).

    La fonction map prend comme argument une liste et produit une liste.
    Pour chaque élément de la liste en entrée, elle exécute l'expression ou le code en paramètre et cette évaluation produit la liste en sortie.
    Dans la fonction map, la variable automatique $_ est un alias de la valeur de la liste en entrée (alias signifie que si on la modifie, elle sera aussi modifiée dans la liste en entrée ; méfiance donc dans l'usage de s///).

    Je crois qu'on peut résumer la proposition de Mr-6 à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @list = map { /(\d+)/ } @tab;
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    Merci pour toutes ces infos ... .
    Je vais essayer de maîtriser la variable $_ en lisant de la doc ....

    Mais en ce qui concerne le termes /(\d+)/ ?
    Est ce que d+ correspond au dernier termes de la ligne?

    Je ne comprend pas très bien

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    \d, dans une expression régulière représent un digit numérique, c'est à dire un chiffre de 0 à 9.
    \d+ signifie "au moins un digit"
    Le fait d'ajouter des parenthèses autour permet d'indiquer au moteur de recherche de capturer "au passage" le motif trouvé et de le retourner dans un contexte de liste.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 299
    Points : 137
    Points
    137
    Par défaut
    Merci .......

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

Discussions similaires

  1. Convertir un numéro de colonne en lettre
    Par zoidy dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 18/04/2017, 22h37
  2. Réponses: 2
    Dernier message: 17/07/2007, 09h49
  3. Réponses: 2
    Dernier message: 12/07/2007, 10h12
  4. [VBA]Récupérer numéros de colonne et de lignes de la cellule active
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2007, 20h28
  5. Récupérer le numéro de colonne dans un JTextPane
    Par The Rock dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 28/12/2005, 16h30

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