Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1334 connectés 

  FORUM HardWare.fr
  Programmation

  [Algorithme][PERL] Trie, recherche sur des fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Algorithme][PERL] Trie, recherche sur des fichiers

n°97703
stef_dober​mann
Personne n'est parfait ...
Posté le 07-02-2002 à 12:01:45  profilanswer
 

:hello:
Je cherche un algorithme qui puisse m'enlever les doublon dans un fichier.
j'ai une solution, mais elle ne fonctionne pas très bien .....
 
Merici de votre participation :jap:


---------------
Tout à commencé par un rêve...
mood
Publicité
Posté le 07-02-2002 à 12:01:45  profilanswer
 

n°97787
stef_dober​mann
Personne n'est parfait ...
Posté le 07-02-2002 à 14:38:10  profilanswer
 

Vous avez des idée si vous plaise  :cry:


---------------
Tout à commencé par un rêve...
n°97810
youdontcar​e
Posté le 07-02-2002 à 15:27:40  profilanswer
 

quel type de doublons ? noms de fichiers, texte dans un fichier, etc. ?

n°97856
stef_dober​mann
Personne n'est parfait ...
Posté le 07-02-2002 à 16:18:23  profilanswer
 

fichier texte (enfin CSV)
des adresses identiques (rue, code postal, ville)
 
Je l'aurais bien fait la main, mais sur plus de 5000 lignes et une vingtaines de colonnes, je  :pt1cable:
 
j'ai une solution mais elle n'a pas l'air de bien fonctionner !!


---------------
Tout à commencé par un rêve...
n°97862
youdontcar​e
Posté le 07-02-2002 à 16:28:19  profilanswer
 

he bien si ton fichier tient en mémoire, tu peux remplir un tableau contenant chaque ligne, puis le trier, puis enlever les doublons.
 
je n'ai jamais utilisé perl, mais tu dois pouvoir :
 
* créer une structure qui contient tous tes champs
* lire les 5000 champs dans un tableau de ces structures
* les trier (par ex avec qsort() du C, tu donnes un bout de code qui permet de faire le tri - ici, des comparaisons de chaînes suffiront, sur les 20 champs)
* une fois que ton tableau est trié, tu le parcours, puis tu écris chaque ligne à condition que la suivante soit différente.
 
une variation est de faire un hash des lignes, par ex un md5, associer à ce hash le numéro de ligne du fichier, trier les md5, et se servir du numéro de ligne pour relire le fichier source et écrire le fichier trié (en fait il vaut mieux stocker un offset de fichier et faire des seek() dedans).
 
la deuxième soluce implique que tes lignes soient identiques au caractère près. sinon, boum. tu peux aussi rajouter un bout de code qui transforme la ligne en une réprésentation interne pour créer ton hash (ie, convertir tout en minuscule, supprimer les espaces superflus, etc.)

n°97889
stef_dober​mann
Personne n'est parfait ...
Posté le 07-02-2002 à 16:55:32  profilanswer
 

c ce que j'ai fait sauf que mettre tous en memoire, c pas ce que j'ai fait, je lit les lignes les une aprés les autres dans 1 fichiers, et je recherche cette ligne dans un autre fichier...
 
ca marche plus ou moins mais bon
Merci quand meme :D


---------------
Tout à commencé par un rêve...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Algorithme][PERL] Trie, recherche sur des fichiers

 

Sujets relatifs
[perl/php]Conseil pour faire des garphes depuis une page web??[CGI / Perl / ??] Récupérer l'IP dans un formulaire Perl
[PHP] Liste des fichiers d'un repertoire quelconque[PHP] moteur de recherche de fichiers pour site web
[java] un moteur de recherche par methodes ca vous interesse?Recherche de docs sur les fractales pour projet fin étude
[Perl] sous Unix - StructuresRecherche code source puissance 4 mastermind
Plus de sujets relatifs à : [Algorithme][PERL] Trie, recherche sur des fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR