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 :

Question tableau


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 197
    Points : 78
    Points
    78
    Par défaut Question tableau
    Bonjour à tous,
    j ai une petite question concernant un tableau de données; Lorsque je fais un print d 'un tableau j obtient chaque valeur sur une ligne distinct alors que j ai un tableau cree a partir d un push, lorsque je le print j ai tout sur une meme ligne !!!!
    Voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $Cmd_Snmp_ARP_rt_DIS = "snmpwalk -v1 -On -c $Com_Snmp ";
    @Cmd_Snmp_ARP_rt_DIS_resultat  = `$Cmd_Snmp_ARP_rt_DIS $Addr_Ip .1.3.6.1.2.1.4.22`;
    #Resultat complet de la commande SNMP avec les OIDs
    print"\n#Cmd_Snmp_ARP_rt_DIS#@Cmd_Snmp_ARP_rt_DIS_resultat[0..$#Cmd_Snmp_ARP_rt_DIS_resultat]\n ";
    RESULTAT d affichage correct mais avec trop d informations

    .1.3.6.1.2.1.4.22.1.4.4.10.4.12.3 = dynamic(3)
    .1.3.6.1.2.1.4.22.1.4.4.10.4.12.4 = dynamic(3)
    .1.3.6.1.2.1.4.22.1.4.4.10.4.12.5 = dynamic(3)
    .1.3.6.1.2.1.4.22.1.4.4.10.4.12.6 = dynamic(3)
    .1.3.6.1.2.1.4.22.1.4.4.10.4.12.7 = dynamic(3)
    La suite du code qui selectionne les bonnes informations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #On va prendre ligne par ligne du tableau @Cmd_Snmp_ARP_rt_DIS_resultat contenant la table ARP
            {
                    push (@Tableau_ARP, $1) if(/.*.\.(.*\..*\..*\..*=.*)/);
            }
    print"\n##@Tableau_ARP##\n";
    Affichage d un tableau dont tous les resultat s affiche on a l impression sur une seule ligne:
    ##10.4.12.3 = 4 10.4.12.4 = 4 10.4.12.5 = 4 10.45.162.6 = 4 10.4.12.7 = 4 ##
    Ce que je voudrais voir afficher

    ##10.4.12.3 = 4
    10.4.12.4 = 4 10.4.12.5 = 4
    10.45.162.6 = 4
    10.4.12.7 = 4 ##

    MErci d avance pour votre aide
    Jules

  2. #2
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Je me trompe peut-être parce que je suis un débutant, mais en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #On va prendre ligne par ligne du tableau @Cmd_Snmp_ARP_rt_DIS_resultat contenant la table ARP
            {
                    push (@Tableau_ARP, $1) if(/.*.\.(.*\..*\..*\..*=.*)/);
            }
    print"\n##@Tableau_ARP##\n\r";
    Je crois que ça devrait marcher...
    Sans extrait de code, ne vous attendez à aucun miracle (sauf miracle) ...

    ...et n'oubliez pas: RTFM!!

    Téléchargez FireBug pour Firefox (le paracétamol du développement web)

    "MERCI" ne coûte rien, n'hésitez pas à vous en servir!

  3. #3
    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
    Si c'est juste une question d'affichage, pourquoi ne ferais-tu pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "$1\n" if....
    sinon, fais une boucle sur ton tableau, pour afficher chaque "élément\n"...

    sinon tu peux aussi mettre ton tableau dans un scalaire où tu remplaces les espaces par des retours chariot, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $tab = "@tab";
    $tab =~ s/\s/\n/g;
    print "##$tab##";

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,

    encore plus simple ça sera d'utiliser la variable $" ($LIST_SEPARATOR avec use English; )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {
      local $"="\n"; # l'espace par défaut sera remplacé par \n
      print "@tab\n";
    }
    lami20j
    --
    lami20j

Discussions similaires

  1. [Question] tableau en matrice rectangulaire
    Par la_pieuvre dans le forum LabVIEW
    Réponses: 2
    Dernier message: 30/11/2012, 13h50
  2. [AC-2000] Questions Tableau croisé dynamique
    Par Mycose dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/12/2010, 11h42
  3. [Debutant] question tableau
    Par jocelyn54 dans le forum Débuter
    Réponses: 5
    Dernier message: 17/01/2008, 11h44
  4. Question tableau
    Par calimero642 dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2006, 16h26
  5. [html dreamweaver] question image et tableau
    Par celina5880 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 13/04/2005, 17h03

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