Moin !
leider finde ich das Posting was die Basis für diesen Code nicht wieder....
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
use strict;
use warnings;
use 5.010;
use Cwd;
use File::Spec;
use Getopt::Long;
use File::Find::Rule;
$| = 1;
my $PROGNAME = ( split m|[\\/]|, $0 )[-1];
help() if !@ARGV;
my ( @filemask, @dir );
my ( $wiki_output, $help, $from, $to);
GetOptions(
"f|file=s" => \@filemask,
"d|dir=s" => \@dir,
"wiki" => \$wiki_output,
"from=i" => \$from,
"to=i" => \$to,
"h|help" => \$help
) or die "Error in command line arguments\n";
push @dir, Cwd::cwd()
if not @dir;
$wiki_output //= 0;
help() if $help;
if (not @filemask) {
say "!!!! ##ERROR## !!!! filemask must not be empty!\n";
help();
}
for my $i ($from .. $to) {
print "Zoomstufe ".$i."\n";
my $rule = File::Find::Rule->new();
my $total_count = 0;
$rule->name(@filemask);
$rule->exec(
sub {
my ( $shortfn, $dir, $filename ) = @_;
$dir .= $i."\\";
$filename = File::Spec->rel2abs($filename);
$total_count++;
}
);
print "zaehle .....\r";
$rule->in(@dir);
print "total files: ".$total_count."\r";
print "\n";
}
exit;
sub help {
print <<"HELP";
Usage:
$PROGNAME --file=FILEMASK --dir=DIR1
Parameters:
--dir Selected directory
--file Filemask for selecting several files
--wiki Output in Wiki-Table-Format
--help This help
Example:
$PROGNAME --file=a.[12]* -d=X:\\TEST
HELP
exit 4711;
}
__END__
Ich habe dort eine Schleife eingebaut um nummerische Verzeichnisse (beschreiben Zoomstufen für eine Karte) auswerten zu können. Das ist die Schleife mit dem Codeauszug
for my $i ($from .. $to) {
Dann habe ich mir überlegt das ich die Nummer noch an das Basis-Auswertungsverzeichnis anhängen muss und die Zeile
ergänzt. Aber das lief überhaupt nicht.
Es wird die erste Zoomstufe gestartet und dann zählt er sich wohl einen Ast ab. Ich vermute, das das Problem bei der Übergabe der Parameter liegt. Aber erklären kann ich es mir auch nicht.
Auch der Versuch über
my ( $shortfn, $dir.$i."\\", $filename ) = @_;
hat nicht gefruchtet.
Kann mir einer weiterhelfen von Euch?
Gruß Jan :-)
perl-Greenhorn - Win7 64bit / strawberry (ehem. activeperl) - www.OpenStreetMap.de