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 fichiers volumineux


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut Comparaison de fichiers volumineux
    Salut,

    voila la petite histoire, j avait 2 fichiers, chacun contenait des noms d'utilisateurs plus quelques informations (chaque ligne etait de la forme "nom;prenom;info1;info2...etc")
    il fallait faire une comparaison, ie prendre un nom du fichier1 et le chercher dans le fichier2, et s il exist récupérer les infos contenus dans fichier1 et fichier2 et les mettre dans fichier3.

    au début j'utilisai les tableaux et les hashs pour cette comparaison (créer un tableau qui contient tous les noms du fichier1 ainsi de suite), ils sont maniables et faciles a utiliser, cependant la je doit faire la meme chose mais mes fichiers de données sont volumineux, l'un d'eux compte 52700 entrées, je ne me vois pas initialiser un tableau et un hash pareil

    je me suis retourner alors vers les fichiers, mais le traitement est beaucoup plus lourd, pour chaque nom lu depuis le fichier1 il faut lire tout le fichier2.

    y a t il un autre moyen en perl plus souple???

    merci d'avance pour vos idées et conseils

  2. #2
    Expert confirmé
    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
    Par défaut
    D'une part 52700 entrées n'est pas excessif pour un hash du fichier2, je ne vois pas pourquoi tu aurais besoin d'un tableau pour le fichier1.

    D'autre part, si tu n'as pas assez de RAM ou que les fichiers peuvent devenir encore plus gros, tu as deux solution :
    • Utiliser l'un des modules DBM pour mettre le hash sur le disque plutôt qu'en mémoire
    • Utiliser une vrai base de donnée (vraisemblablement la solution la plus propre et extensible à terme)


    --
    Jedaï

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Sur le plan de l'algorithmie, le problème que tu as c'est qu'une comparaison de tes deux fichiers te coute n comparaisons de n entrées. Ca croit donc assez vite O(n^2). La technique consiste donc à faire un tri sur les deux fichiers (O(n*logn)), et après tu compares ligne à ligne (O(n)).

    Tu t'épargnes le travail en chargeant les deux fichiers dans des hash. Et c'est probablement encore plus efficace.

  4. #4
    Membre éclairé Avatar de wodel
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2005
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2005
    Messages : 295
    Par défaut
    Salut,

    merci pour les réponses...

    le probléme c'est que je dois comparer avec toutes entrées parce que ce n'est pas une comparaison mot par mot (celle-la elle a été faite), la comparaison utilisée fait appel à un algorithme qui est un mélange entre le similar_text et le soundex, c'est pour traiter les incohérences dans les noms, trouver les fautes d'othographes ou bien les écritures différentes d'un meme nom.

Discussions similaires

  1. Comparaison de deux fichiers volumineux
    Par shinjidragibus dans le forum Langage
    Réponses: 36
    Dernier message: 07/08/2014, 23h56
  2. Comparaison et modification de deux fichiers volumineux
    Par roman67 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 04/10/2008, 08h51
  3. Réponses: 1
    Dernier message: 03/10/2008, 16h07
  4. [langage] Comparaison de fichiers
    Par Jibees dans le forum Langage
    Réponses: 3
    Dernier message: 23/04/2003, 16h27
  5. Comparaison de fichier
    Par danzerg dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 11h49

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