Re: array of array

Liste des GroupesRevenir à fcl perl 
Sujet : Re: array of array
De : kurtzlepirate (at) *nospam* free.fr (kurtz le pirate)
Groupes : fr.comp.lang.perl
Date : 20. Jan 2024, 11:02:49
Autres entêtes
Organisation : Compagnie de la Banquise
Message-ID : <65ab8c39$0$6453$426a74cc@news.free.fr>
References : 1 2 3 4 5 6
User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
On 19/01/2024 19:43, Nicolas George wrote:
kurtz le pirate , dans le message
<65aa3fbf$0$2586$426a34cc@news.free.fr>, a écrit :
J'ai fais du propre et un programme avec le sctrict minimum.
Et toujours le même souci :(
 
Pouvez-vous montrer ce programme ?
 

# ----------------------------------------------------------------------

#!/usr/bin/perl -w
use strict;
use warnings;
use File::Basename;

use Data::Dumper;

# --- 2024-01-15


# ----------------------------------------------------------------------
my $i;

my @vertex;
my @faces;

my @line;

# ----------------------------------------------------------------------
my $fullPath = shift;
my ($name, $dir, $ext) = fileparse($fullPath,'\..*');
printf ("name = $name\n");
printf ("dir  = $dir\n");
printf ("ext  = $ext\n\n");
chdir ($dir) or die "chdir error : $!\n";


# ----------------------------------------------------------------------
my $sourceFile="$name$ext";
print "* In file  : $sourceFile\n\n";

my $povFile = $sourceFile;
$povFile = "$name.inc";
print "* Out file : $povFile\n\n";


# ----------------------------------------------------------------------
# push fake element to avoid zero' element
push @vertex,[-1,-1,-1];


# ----------------------------------------------------------------------
open (SOURCE,"<",$sourceFile) or die "Input file - Error openning
$sourceFile : $! !\n";
while(<SOURCE>) {

if( /^v/) {
# sample : v 4.29289322 -0.70710678 0.0000000e+0
@line = split ' ';
push @vertex,[$line[1],$line[2],$line[3]];
}

if( /^f/) {
# sample : f 527/598 528/600 331/368 330/366

# split on space
@line = split ' ';
print "1:";
print join("|", @line),"\nDumper:\n";
print Dumper @line;

# remove first item : 'f'
shift(@line);
print "2:";
print join("|", @line),"\nDumper:\n";
print Dumper @line;

# split on slash for all element of @line
@line = map { [split /\//] } @line;
print "3:";
print join("|", @line),"\nDumper:\n";
print Dumper @line;

# add array into array
push @faces, [@line];
}
print "---\n";
}
close (SOURCE);
exit(0);

print "\n\n\n*** Dumper \@faces\n";
print Dumper @faces;
print "\n\n\n";

print "\n\n\n*** loop  \@faces\n";
for my $i ( 0 .. $#faces ) {
for my $j ( 0 .. $#{$faces[$i]} ) {
print "faces[$i,$j] = $faces[$i][$j]\n";
}
}

print "\n\n\n*** loop  \@vertex\n";
for my $i ( 0 .. $#vertex ) {
for my $j ( 0 .. $#{$vertex[$i]} ) {
print "vertex[$i,$j] = $vertex[$i][$j]\n";
}
}
# ----------------------------------------------------------------------




Et le fichier de données :

# WaveFront *.obj file

g Lathe_NURBS
usemtl Mat
v 36.172029 288.758429 0
v 26.171929 288.758429 0
v 26.171929 285.758429 0

f 198/216 199/218 2/3 1/1
f 198/216 199/218 2/3








--
kurtz le pirate
compagnie de la banquise

Date Sujet#  Auteur
15 Jan 24 * array of array14kurtz le pirate
16 Jan 24 +- Re: array of array1Gosseyn
16 Jan 24 `* Re: array of array12Nicolas George
18 Jan 24  `* Re: array of array11kurtz le pirate
18 Jan 24   `* Re: array of array10Nicolas George
19 Jan 24    `* Re: array of array9kurtz le pirate
19 Jan 24     +* Re: array of array3Nicolas George
20 Jan 24     i`* Re: array of array2kurtz le pirate
20 Jan 24     i `- Re: array of array1kurtz le pirate
19 Jan 24     `* Re: array of array5Gosseyn
20 Jan 24      +* Re: array of array2kurtz le pirate
20 Jan 24      i`- Re: array of array1Gosseyn
20 Jan 24      `* Re: array of array [HS]2kurtz le pirate
20 Jan 24       `- Re: array of array [HS]1Gosseyn

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal