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 :

Afficher certains éléments d'un tableau.


Sujet :

Langage Perl

  1. #1
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut Afficher certains éléments d'un tableau.
    Bonjour

    J'ai un fichier stats.log composé de 3 informations:
    • Adresse IP
    • Date
    • Heure
    Elles sont affichées dans un tableau via stats.cgi dont voici ci-dessous le code permettant l'affichage:

    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
    our $logfile="/chemin/cgi-bin/log/stats.log";
     
    sub view_stats
    {
        open my ($in), $logfile;
     
          while (<$in>)
          {
              push @lines, [split];
            my $all=(split /\s/)[0];
          }
     
        close ($in);
    }
    # code après
     
    # code avant
    print $cgi->table({-cellspacing=>'8',-cellpadding=>'0'},
                         Tr({-align=>'left'}, [
                          th({-colspan=>3})."\n",
                          th(['IP','DATE','TIME'])."\n",
                          map {td($_)."\n"} @lines,
                         ])
                       );
    # code après
    Je souhaite afficher uniquement l'IP et l'heure, comment dois-je m'y prendre pour ne pas afficher à la fois le nom de la colonne donc DATE et la date en elle-même ?

    J'aimerai trouver un système qui me permette d'afficher lorsque je le souhaite la ou les colonnes désirées et leur contenu.

    Pouvez-vous me donner un petit coup de pouce?

    Merci d'avance

  2. #2
    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
    Tu peux utiliser des slices (tranches) de tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my @trucs = qw(hello world and moon);
    print join ', ', @trucs[0, 3];
    affichera "hello, moon".

    La syntaxe est relativement simple : au lieu d'indexer par un unique nombre, tu indexes par une liste de nombres (dans les []) et tu gardes le sigil @ au lieu de $.

    Donc, supposant que tu crées le tableau @slice avant à partir de tes paramètres, tu pourras faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my @columns = qw(IP DATE TIME);
    print $cgi->table({-cellspacing=>'8',-cellpadding=>'0'},
                         Tr({-align=>'left'}, [
                          th({-colspan=>3})."\n",
                          th([@columns[@slice]])."\n",
                          map {td([@{$_}[@slice]])."\n"} @lines,
                         ])
                       );
    (avec @slice égal à (0, 2) par exemple, cela ne conservera que les colonnes IP et TIME)

    --
    Jedaï

  3. #3
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Salut Jedai

    Cela fonctionne à merveille

    Une dernière question, je souhaite numéroter chaque ligne de mon tableau avec une colonne "NB" en partant de 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my @columns = qw(NB IP DATE TIME);
    print $cgi->table({-cellspacing=>'8',-cellpadding=>'0'},
                         Tr({-align=>'left'}, [
                          th({-colspan=>4})."\n",
                          th([@columns[@slice]])."\n",
                          map {td([@{$_}[@slice]])."\n"} @lines,
                         ])
                       );
    Existe-t-il une fonction pour faire ça ?

    Merci beaucoup

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my @columns = qw(NB IP DATE TIME);
    my $i = 1;
    print $cgi->table({-cellspacing=>'8',-cellpadding=>'0'},
                         Tr({-align=>'left'}, [
                          th({-colspan=>4})."\n",
                          th([@columns[@slice]])."\n",
                          map {td([($i++, @{$_})[@slice]])."\n"} @lines,
                         ])
                       );
    --
    Jedaï

Discussions similaires

  1. Supprimer certains éléments d'un tableau
    Par Him dans le forum Langage
    Réponses: 7
    Dernier message: 29/10/2008, 01h56
  2. Réponses: 9
    Dernier message: 01/08/2008, 16h17
  3. Masquer certains éléments d'un tableau
    Par onirisme dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 04/12/2007, 17h01
  4. Comment afficher un élément d'un tableau ?
    Par _SamSoft_ dans le forum Débuter
    Réponses: 3
    Dernier message: 17/09/2007, 12h49
  5. Réponses: 1
    Dernier message: 15/12/2006, 14h53

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