kurtz le pirate
2024-01-15 17:17:06 UTC
Bonjour,
Je ne sais pas s'il y a du monde qui vient encore ici, mais je tente ma
chance ;
Donc :
J'ai des données de ce genre :
f 198/216 199/218 2/3 1/1
Le but est de découper chaque couple a/b dans un tableau '@faces'
Le fichier a 'x' lignes comme ça.
J'ai donc fait pour chaque ligne du fichier :
# je decoupe sur le séparateur espace et je mets dans '@line'
@line = split ' ';
# j'enlève le 'f' du début
shift(@line);
# je découpe chaque element de @line en un tableau de deux
# valeurs sur le séparateur '/'
@line = map { [ split /\//, $_ ] } @line;
# je pousse ce tableau dans mon tableau global
push @faces, [@line];
Jusque la, cela semble correct.
L'exemple donné a 4 'couples' mais il peut y en avoir entre 3 et n.
Mais, quand je veux accéder au valeurs :
(les deux boucles c'est juste pour le debug)
for my $i ( 0 .. $#faces ) {
for my $j ( 0 .. $#{$faces[$i]} ) {
print "faces[$i,$j] = $faces[$i][$j]\n";
}
}
J'obtiens :
faces[0,0] = ARRAY(0x7f8a2987f288)
faces[0,1] = ARRAY(0x7f8a2987ea48)
faces[0,2] = ARRAY(0x7f8a29960b08)
faces[0,3] = ARRAY(0x7f8a2982d9c8)
Alors qu'avec le dumper :
$VAR1 = [
[
'198',
'216'
],
[
'199',
'218'
],
[
'2',
'3'
],
[
'1',
'1'
]
];
Si quelqu'un peut me dire où je me trompe ...
Merci d'avance.
ps : pour ceux qui ont reconnu, oui, c'est pour convertir des fichiers
obj en autre chose.
Je ne sais pas s'il y a du monde qui vient encore ici, mais je tente ma
chance ;
Donc :
J'ai des données de ce genre :
f 198/216 199/218 2/3 1/1
Le but est de découper chaque couple a/b dans un tableau '@faces'
Le fichier a 'x' lignes comme ça.
J'ai donc fait pour chaque ligne du fichier :
# je decoupe sur le séparateur espace et je mets dans '@line'
@line = split ' ';
# j'enlève le 'f' du début
shift(@line);
# je découpe chaque element de @line en un tableau de deux
# valeurs sur le séparateur '/'
@line = map { [ split /\//, $_ ] } @line;
# je pousse ce tableau dans mon tableau global
push @faces, [@line];
Jusque la, cela semble correct.
L'exemple donné a 4 'couples' mais il peut y en avoir entre 3 et n.
Mais, quand je veux accéder au valeurs :
(les deux boucles c'est juste pour le debug)
for my $i ( 0 .. $#faces ) {
for my $j ( 0 .. $#{$faces[$i]} ) {
print "faces[$i,$j] = $faces[$i][$j]\n";
}
}
J'obtiens :
faces[0,0] = ARRAY(0x7f8a2987f288)
faces[0,1] = ARRAY(0x7f8a2987ea48)
faces[0,2] = ARRAY(0x7f8a29960b08)
faces[0,3] = ARRAY(0x7f8a2982d9c8)
Alors qu'avec le dumper :
$VAR1 = [
[
'198',
'216'
],
[
'199',
'218'
],
[
'2',
'3'
],
[
'1',
'1'
]
];
Si quelqu'un peut me dire où je me trompe ...
Merci d'avance.
ps : pour ceux qui ont reconnu, oui, c'est pour convertir des fichiers
obj en autre chose.
--
kurtz le pirate
compagnie de la banquise
kurtz le pirate
compagnie de la banquise