C'est plus un principe de précaution, il est question de gros sous ...
J'ai reussi a faire ce que je voulais en passant par des tables de hachage.
J'ai un peu galèrer a tous comprendre mais une fois assimiler c'est super pratique ce machin là ^ .
Le traitement dure environ 1m30.
#Tables de hash des unions et intersections des deux fichiers
%inter = ();
%union = ();
#Ouverture des fichiers, tue le script en cas d'echec
open(FILE,"fichier_1.txt") or die;
open(FILE2,$fichier_comp) or die;
#Chargement des references chaque fichiers dans des tableaux
while(<FILE>){
chomp();
@ligne = split(/;/,$_);
push(@index1,$ligne[7]);
}
while(<FILE2>){
chomp();
@ligne2 = split(/;/,$_);
push(@index2,$ligne2[7]);
}
#Fermeture des fichiers
close(FILE);
close(FILE2);
#On mes tous les elements du premier tableau dans l'union
foreach $a (@index1) {
$union{$a} = 1;
}
#Pour tous les elements du second tableau
foreach $a (@index2) {
#Si il existe dans l'union, c'est qu'il est dans les tableau precedant
#Il est donc placer dans l'inter
if ( exists ($union{$a} ) )
{
$inter{$a} = 1;
}
}
# reconstitution des tableaux à partir
# des tables de hachage
my @inter = keys(%inter);
[^] # Re: table de hachage
Posté par Gaston91 . En réponse au message Traitement de gros fichier. Évalué à 1. Dernière modification le 25 mars 2015 à 15:20.
C'est plus un principe de précaution, il est question de gros sous ...
J'ai reussi a faire ce que je voulais en passant par des tables de hachage.
J'ai un peu galèrer a tous comprendre mais une fois assimiler c'est super pratique ce machin là ^ .
Le traitement dure environ 1m30.