Script Perl [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
3 août 2012
-
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
-
Bonjour,

je souhaite concaténer plusieurs tableaux en un seul. à vrai dire le résultat d'un traitement est stocké dans plusieurs tableaux
d'une seule colonne et le tableau final que je souhaite obtenir doit avoir le nombre de tableaux en colonnes.

comment devrai-je procéder. Merci :)

1 réponse

Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Salut,

Tu a juste a créer un tableau principal dans lequel tu ajoute tes tableaux secondaires, ce qui va te donner un tableau à deux dimensions, comme ceci :

#!/usr/bin/perl
use warnings;
use strict;

my @tab_1 = ("11", "12", "13");
my @tab_2 = ("21", "22", "23");
my @tab_3 = ("31", "32", "33");
my @finalTab;

$finalTab[0] = @tab_1;
$finalTab[1] = @tab_2;
$finalTab[2] = @tab_3;


Ensuite, si tu veut afficher le contenu du tableau, il faut faire deux boucles imbriquées.
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
D'accord, donc dans ce cas tu souhaite récupérer une ligne de tableau, et non une colonne ^^
Messages postés
29
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
3 août 2012

oui c ça mais la ma variable $x c'est toujours 1 2 3 ... et ma variable $y 6 7 8 et si je fais comme ta dis mon tableau sera de cette forme

x | 1 2 3 4 5
y | 6 7 8 9 10

et donc si je récupère la ligne je n'aurai pas 1 6, 2 7, 3 8....
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Voila ce que je te propose :
#!/usr/bin/perl
use warnings;
use strict;

# En paramètre de la fonction :
#    - @tab : Tableau
#    - $ligne : Numéro de la ligne que l'on souhaite afficher
sub printLigne {
	my ($ligne, @tab) = @_;

	# Dans un tableau, on commence à l'indice 0
	$ligne--;

	# Taille du tableau
	my $lengthTab = scalar @tab;

	# On parcours le tableau
	for(my $i = 0; $i < $lengthTab; $i++) {
		# On affiche la case demandé (a la fin on obtient toute une ligne)
		print $tab[$i][$ligne] . "\n";
	}
}

# Création du tableau lignes/colonnes
my @finalTab;

# Colonne X
$finalTab[0][0] = 11;
$finalTab[0][1] = 12;
$finalTab[0][2] = 13;

# Colonne Y
$finalTab[1][0] = 21;
$finalTab[1][1] = 22;
$finalTab[1][2] = 23;

# Voici a quoi ressemble ton tableau à l'instant t :
# X    Y
# 11   21
# 12   22
# 13   23

# J'appel la fonction qui permet d'afficher une ligne
&printLigne(1, @finalTab);
Messages postés
29
Date d'inscription
lundi 23 avril 2012
Statut
Membre
Dernière intervention
3 août 2012

merci merciiii :)
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Pas de quoi :D
Passe ton sujet en "Résolu"