Apollo J
2017-02-06 23:09:05 UTC
Bonjour,
J'utilise l'exemple de pelfertut ( http://perl.mines-albi.fr/DocFr/perlreftut.html) pour construire une structure de données.
Exple: J'ai 2 fichiers comme ça. On suppose que la variable $nom est unique, mais qu'il peut être dans plusieurs dpts.
NB : Exple non réél, il peut y avoir plusieurs chefs-lieux dans un même dpt.
Je voulais savoir s'il était possible de se passer de la table %Mem, çad de tout ranger dans %TabCoord.
Merci d'avance
Personnes.dat
------------------------------
nom, n°dpt
...
etc
------------------------------
et
Coord.dat
------------------------------
n°dpt, ville,chef-lieu, maire
.....
------------------------------
Voilà le code que j'ai écrit et qui fonctionne en perl v5.10
#!/usr/bin/perl
my %TabPersonnes;
my %TabCoord ;
my %Mem;
open(NOM_DPT,"Personnes.dat") or die "ouverture fichier $! impovilleible.\n";
open(COORD, "Coord.dat") or die "ouverture fichier $! impovilleible.\n";
open(SORTIE,"Sortie.dat") or die "ouverture fichier $! impovilleible.\n";
foreach $s (<NOM_DPT>)
{
chomp($s);
($nom,$dpt)=split(',',$s);
push @{$TabPersonnes{$dpt}},$nom;
}
foreach $d (<COORD>)
{
chomp($d);
($dpt,$ville,$cheflieu, $maire)=split(',',$d);
if ($dpt ne "") {
push @{$TabCoord{$dpt}},$ville;
$Mem{$ville}="$cheflieu,$maire\n";
}
}
foreach $dpt (sort keys %TabCoord) {
$n_Coord=@{$TabCoord{$dpt}}-1;
if (exists($TabPersonnes{$dpt})){
$n_Personnes=@{$TabPersonnes{$dpt}};
foreach my $i (0..$n_Coord) {
$ville = @{$TabCoord{$dpt}}[$i];
# NOM, dpt, ville,chef-lieu, maire
print SORTIE join ',',@{$TabPersonnes{$dpt}}[$i%$n_Personnes],$dpt,$ville,$Mem{$ville};
}
}
J'utilise l'exemple de pelfertut ( http://perl.mines-albi.fr/DocFr/perlreftut.html) pour construire une structure de données.
Exple: J'ai 2 fichiers comme ça. On suppose que la variable $nom est unique, mais qu'il peut être dans plusieurs dpts.
NB : Exple non réél, il peut y avoir plusieurs chefs-lieux dans un même dpt.
Je voulais savoir s'il était possible de se passer de la table %Mem, çad de tout ranger dans %TabCoord.
Merci d'avance
Personnes.dat
------------------------------
nom, n°dpt
...
etc
------------------------------
et
Coord.dat
------------------------------
n°dpt, ville,chef-lieu, maire
.....
------------------------------
Voilà le code que j'ai écrit et qui fonctionne en perl v5.10
#!/usr/bin/perl
my %TabPersonnes;
my %TabCoord ;
my %Mem;
open(NOM_DPT,"Personnes.dat") or die "ouverture fichier $! impovilleible.\n";
open(COORD, "Coord.dat") or die "ouverture fichier $! impovilleible.\n";
open(SORTIE,"Sortie.dat") or die "ouverture fichier $! impovilleible.\n";
foreach $s (<NOM_DPT>)
{
chomp($s);
($nom,$dpt)=split(',',$s);
push @{$TabPersonnes{$dpt}},$nom;
}
foreach $d (<COORD>)
{
chomp($d);
($dpt,$ville,$cheflieu, $maire)=split(',',$d);
if ($dpt ne "") {
push @{$TabCoord{$dpt}},$ville;
$Mem{$ville}="$cheflieu,$maire\n";
}
}
foreach $dpt (sort keys %TabCoord) {
$n_Coord=@{$TabCoord{$dpt}}-1;
if (exists($TabPersonnes{$dpt})){
$n_Personnes=@{$TabPersonnes{$dpt}};
foreach my $i (0..$n_Coord) {
$ville = @{$TabCoord{$dpt}}[$i];
# NOM, dpt, ville,chef-lieu, maire
print SORTIE join ',',@{$TabPersonnes{$dpt}}[$i%$n_Personnes],$dpt,$ville,$Mem{$ville};
}
}