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 :

Comparaison de deux tableaux


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 49
    Points
    49
    Par défaut Comparaison de deux tableaux
    Je cherche un moyen efficace de comparer deux tableaux qui ne sont pas forcement de taille identique.

    Voila donc le code que j'ai fait et qui n'est pas très efficace

    @feed -> Tableau des flux déjà enregistré
    @flux -> Tableau des nouveaux flux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if ( scalar @$feed > 1 and scalar @$flux > 1 ) {
         for ( my $i = 0; $i <= scalar @$flux; $i++ ) {
          if ( $flux->[$i] !~ /$feed->[$i]/i ) {
            # Le flux n'existe plus ont le supprime de la base de données
            [...]
          }
           else {
             # Présence d'un nouveau flux ont l'ajoute
             [...]
          }
        }
     }
    Mon code pose problème que fait que $i peut etre hors limite pour @feed

    merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    tu veux quoi en sortie?

  3. #3
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    t'es pas clair, que veux tu comparer? en sortie?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Points : 49
    Points
    49
    Par défaut
    Ce que je veut faire est comparer le contenue de @feed par rapport a celui de @flux si un flux est présent dans @feed et pas dans @flux il est supprimé de la base de données. Les flux etant présent dans @flux et pas dans dans @feed sont ajouté a la base de données.

    J'espère avoir été plus clair

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    met ces deux tableaux dans des hashs, parcours les clés d'un des deux hash (ou le tableau cirectement) et test l'autre. Et l'inverse ensuite

    pour mettre un tableau en hash:
    my %hash = map {$_ => 1} @tab;

  6. #6
    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,

    à adapter selon tes besoins
    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
     
    #! /usr/bin/perl
    #
    use warnings;use strict;
     
    my (@feed,@flux);
    my (@just_feed,%in_flux);
     
     
    @feed = qw/a c d e 4 6 a/;
    @flux = qw/a d f g h i j k l m a d/;
     
    @in_flux{@flux}=();
     
    foreach(@feed){push @just_feed,$_ unless exists $in_flux{$_}}
     
    print "Just in \@feed : @just_feed\n";
    lami20j

Discussions similaires

  1. Comparaison de deux tableaux de string
    Par TrucMachinChose dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/09/2011, 09h25
  2. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  3. Comparaison de deux tableaux
    Par tibss dans le forum Excel
    Réponses: 1
    Dernier message: 06/05/2009, 21h30
  4. Comparaison de deux tableaux en VB6
    Par taille50 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2007, 10h28
  5. Comparaison de deux tableaux
    Par solorac dans le forum Excel
    Réponses: 7
    Dernier message: 03/08/2007, 08h49

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