[Perl]-Tableau assoc à 2 dimensions
Fermé
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
-
9 oct. 2007 à 15:59
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 9 oct. 2007 à 20:01
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 9 oct. 2007 à 20:01
A voir également:
- Perl tableau 2 dimensions
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
9 oct. 2007 à 20:01
9 oct. 2007 à 20:01
et bien sûr je suis susceptible de rajouter des colonnes d'un traitement à l'autre...
tu peux établir le nombre de colonnes (voir le tableau @col)
tu peux établir le nombre de colonnes (voir le tableau @col)
lami20j@debian:~/trash$ cat ccm.pl #!/usr/bin/perl use strict;use warnings; my %h; my $l; my @col = 'A' .. 'F'; while(<DATA>){ next if /^$/; /(\w+)\s*(\w+)\s*(\w+)/; push @{$h{$3}{$1}},$2; for $l(@col){ push @{$h{$3}{$l}},0 unless exists $h{$3}{$l}; } } print "machine @col\n"; for my $k(keys %h){ print "$k"; for my $kk(sort keys %{$h{$k}}){ print " ",eval ( join "+",@{$h{$k}{$kk}}); } print "\n"; } __END__ A 50 machine1 A 20 machine1 B 5 machine1 A 5 machine2 C 10 machine2 A 50 machine1 A 20 machine1 B 5 machine1 A 5 machine2 C 10 machine2 D 50 machine1 D 20 machine1 E 5 machine1 F 5 machine2 C 10 machine2 A 50 machine1 A 20 machine1 B 5 machine1 A 5 machine2 C 10 machine2 lami20j@debian:~/trash$ perl ccm.pl machine A B C D E F machine1 210 15 0 70 5 0 machine2 15 0 40 0 0 5
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
9 oct. 2007 à 16:25
9 oct. 2007 à 16:25
Salut,
je vais voir ça ce soir ;-)
je vais voir ça ce soir ;-)
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
9 oct. 2007 à 16:34
9 oct. 2007 à 16:34
Cool !
merci d'avance, je patiente...
merci d'avance, je patiente...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
9 oct. 2007 à 17:21
9 oct. 2007 à 17:21
Re,
voilà,
Resultat
lami20j
voilà,
#!/usr/bin/perl use strict;use warnings; my %h; while(<DATA>){ /(\w+)\s*(\w+)\s*(\w+)/; push @{$h{$3}{$1}},$2; push @{$h{$3}{'A'}},0 unless exists $h{$3}{'A'}; push @{$h{$3}{'B'}},0 unless exists $h{$3}{'B'}; push @{$h{$3}{'C'}},0 unless exists $h{$3}{'C'}; } print "machine A B C\n"; for my $k(keys %h){ print "$k"; for my $kk(sort keys %{$h{$k}}){ print " ",eval ( join "+",@{$h{$k}{$kk}}); } print "\n"; } __END__ A 50 machine1 A 20 machine1 B 5 machine1 A 5 machine2 C 10 machine2
Resultat
root@debian:~/src# perl blux.pl machine A B C machine1 70 5 0 machine2 5 0 10--
lami20j