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 :

Filtrer un tableau


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 44
    Par défaut Filtrer un tableau
    Bonjour,
    J'ai une liste de données dans un tableau (@tabledef)). Je souhaite filtrer le tableau.

    Je crée donc un tableau que j'appelle @filtre.
    @filtre =("ABC", "AZE",RTY");

    J'utilise un foreach pour parcourir l'ensemble de ma table d'origine
    foreach my $elmttable(@tabledef){

    }

    Le problème est que je ne sais pas comment faire pour lui dire que si un élément de @filtre correspond à $elmttable alors je ne l'affiche pas.

    Une idée?
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Citation Envoyé par Crosser02 Voir le message
    Une idée?
    Oui : utiliser un hash !

    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
    use strict;
    use warnings;
     
    my @tabledef = ("ta liste de données") ;
    my %filtre;
     
    # alimentation du hash des filtres
    foreach("ABC", "AZE","RTY") {
        $filtre{$_} = 1;
    }
     
    # on parcourt l'ensemble de la table d'origine
    foreach my $elmttable(@tabledef) {
        if (defined($filtre{$elmttable})) {
            print "$elmttable trouvé dans les filtres !\n";
        }
    }
    N'hésite pas à poser des questions si ce n'est pas clair.

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # alimentation du hash des filtres
    my %filtre = map { $_ => 1 } ("ABC", "AZE","RTY");
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # alimentation du hash des filtres
    foreach("ABC", "AZE","RTY") {
        $filtre{$_} = 1;
    }
    sans vouloir offenser Arioch

    ce qui donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    use strict;
    use warnings;
     
    my @tabledef = ("ta liste de données") ;
    # alimentation du hash des filtres
    my %filtre = map { $_ => 1 } ("ABC", "AZE","RTY");
     
    # on parcourt l'ensemble de la table d'origine
    foreach my $elmttable(@tabledef) {
        if ( exists $filtre{$elmttable} ) {
            print "$elmttable trouvé dans les filtres !\n";
            last;
        }
    }

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Citation Envoyé par djibril Voir le message
    sans vouloir offenser Arioch
    Juste pour savoir : ta méthode est plus propre ou plus rapide que la mienne ou c'était juste pour vouloir m'offenser ?

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    les 3

  6. #6
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Il n'y aurait pas moyen de faire encore plus propre et plus rapide en utilisant grep ?

Discussions similaires

  1. Filtrer un tableau et non une requette
    Par mederik dans le forum Cognos
    Réponses: 4
    Dernier message: 07/03/2018, 17h04
  2. Filtrer un tableau croisé dynamique
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2009, 20h07
  3. [PHP 5.2] [POO] Filtrer un tableau sur un certain champ
    Par beegees dans le forum Langage
    Réponses: 8
    Dernier message: 10/05/2009, 13h36
  4. Filtrer un tableau croisé
    Par moumoune65 dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 10/12/2008, 14h22
  5. Filtrer un tableau de données
    Par Yux dans le forum Langage
    Réponses: 12
    Dernier message: 13/10/2005, 22h21

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