Lire un tableau a 2 dim en perl
Fermé
zouzoulabelle
-
11 déc. 2009 à 22:17
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 11 déc. 2009 à 23:58
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 11 déc. 2009 à 23:58
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
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
11 déc. 2009 à 22:48
11 déc. 2009 à 22:48
Je crois que l'interpréteur est explicite:
for $i ( 0 .. 3)
En Perl, la boucle for a la même structure qu'en C, il vaudrait mieux mettre:
Bonne continuation.
for $i ( 0 .. 3)
En Perl, la boucle for a la même structure qu'en C, il vaudrait mieux mettre:
for ($i=0; $i<4; $i++)Ou alors il faut utiliser 'foreach'.
Bonne continuation.
Salut,
my @contenu = <F>;#jé met le contenu du fichier dans une table a 2 dimension
C'est ça que tu crois, mais en réalité tu as un tableau à une seule dimension.
Ton tableau a la structure suivante :
Un tableau à deux dimensions à la structure suivante
Tu dois créer le tableau à deux dimensions.
Voici une manière de le faire
la boucle for a la même structure qu'en C,
Oui est non.
Si on écrit comme ça for ($i=0; $i<4; $i++), tu as raison c'est oui.
En revanche si on écrit comme ça, for est synonyme de foreach
my @contenu = <F>;#jé met le contenu du fichier dans une table a 2 dimension
C'est ça que tu crois, mais en réalité tu as un tableau à une seule dimension.
Ton tableau a la structure suivante :
@contenu=("region", "dep", "com", "23", "15", "16", "17", "18", "19");
Un tableau à deux dimensions à la structure suivante
@TdT=( [ "region", "dep", "com" ], [ "23", "15", "16" ], [ "17", "18", "19" ], );
Tu dois créer le tableau à deux dimensions.
Voici une manière de le faire
lami20j@debian-acer:~$ cat 1.txt region dep com 23 15 16 17 18 19 lami20j@debian-acer:~$ cat 1.pl #!/usr/bin/perl use strict;use warnings; my $fic="1.txt"; open F,$fic or die "E/S : $fic $!\n"; my @tab; while(<F>){ push @tab,[ split ]; } for my $i(0..$#tab){ for my $j(0..$#{$tab[$i]}){ print "$tab[$i][$j]\n"; } } __END__ lami20j@debian-acer:~$ perl 1.pl region dep com 23 15 16 17 18 19 lami20j@debian-acer:~$
la boucle for a la même structure qu'en C,
Oui est non.
Si on écrit comme ça for ($i=0; $i<4; $i++), tu as raison c'est oui.
En revanche si on écrit comme ça, for est synonyme de foreach
lami20j@debian-acer:~$ perl -e 'print "$_\n" for(0..2)' 0 1 2 lami20j@debian-acer:~$ perl -e 'print "$_\n" foreach(0..2)' 0 1 2
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
11 déc. 2009 à 23:58
11 déc. 2009 à 23:58
Je ne savais pas que le 'for' pouvait servir de 'foreach'; je dois avoir un vieux Perl.
Merci pour la précision.
Bonne nuit.
Merci pour la précision.
Bonne nuit.
Re,
je veux ecrire un programme qui fe le parcours de tous le fichier et il m affiche tous le contenu du fichier mais un par un .
En revanche si ce n'est que l'affichage qui t'interesse alors tu peux faire tout simplement
je veux ecrire un programme qui fe le parcours de tous le fichier et il m affiche tous le contenu du fichier mais un par un .
En revanche si ce n'est que l'affichage qui t'interesse alors tu peux faire tout simplement
lami20j@debian-acer:~$ cat 1.txt region dep com 23 15 16 17 18 19 lami20j@debian-acer:~$ cat 2.pl #!/usr/bin/perl use strict;use warnings; my $fic="1.txt"; open F,$fic or die "E/S : $fic $!\n"; while(<F>){ s/\s+/\n/g; print; } __END__ lami20j@debian-acer:~$ perl 2.pl region dep com 23 15 16 17 18 19