Thread Verzeichnis öffnen und Dateien durchsuchen (16 answers)
Opened by yasukatakaya at 2007-06-06 12:39

yasukatakaya
 2007-06-06 14:07
#77303 #77303
User since
2007-05-31
68 Artikel
BenutzerIn
[default_avatar]
Hallo,
also ich will folgendes machen, das ist z.B. mein jetztiges Prog, dieses macht genaus das File auf, welches ich vorsagen z.B.
Code: (dl )
perl test.pl R0000378.CAP


R0000378.CAP ist meine Datei die durchsucht wird, nun sind viele Dateien unter diesem Verzeichnis, die so wie oben oder ähnliche Dateinamen haben, mit meinem Prog habe ich nur das aufgerufene Datei durchsucht, nun will ich aber alle Dateie unter einem Verzeichnis (dateien) durchsuchen:

hier ist z.B. mein prog:

Code: (dl )
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
$quelle = $ARGV[0];
$x = $ARGV[0];
$x =~ s/(\w+)\.\w+/$1/;
$ziel = $x;

open ($INPUT,"<$quelle") or die "konnte $ziel nicht oeffnen,$!\n";

while ($line = <$INPUT>)
{
if ($line =~ /.CBT/gsm)
{
$cbt = 1;
}
elsif ($line =~ /BARCODE/gsm)
{
$barcode = 1;
}
elsif ($line =~ /AATHD000000.000/gsm)
{
$falscheangabe = 1;
}
elsif ($line =~ /PASS/)
{
$start_pos = tell($INPUT);
}
elsif ($line =~ /FAIL/)
{
$end_pos = tell($INPUT);
}
}

if ( $end_pos)
{
$status = '01';
$result = 'Failed';

seek($INPUT, $start_pos, 0);
$hit;

while ($line = <$INPUT>)
{

chomp($line);
last if $end_pos <= tell($INPUT);

if ($line =~ /^\z/)
{
$hit = 1;
}

if ($hit)
{
push @fehler, $line;
}
}

$fehler = join(' ', @fehler);
$fehler =~ s/\s+/ /g;


}
else
{
$status = '00';
$result = 'Passed';
}

close $INPUT;

if (($cbt != 1) || ($barcode != 1))
{
unlink ($quelle);
}
elsif ($falscheangabe == 1)
{
unlink ($quelle);
}
else
{
open (OUTPUT,">$ziel.txt") or die "konnte $ziel nicht oeffnen,$!\n";

print OUTPUT "{\@BATCH|$sachnummer||GOEPEL_BSCAN||KDSNR:$kundennummer|ICT||PB/PL_P|uqm161|||\n";
print OUTPUT "{\@BTEST|$seriennummer|$status|$starttest|||||n|n|$endetest||1|\n";
print OUTPUT "{\@RPT|$result}\n";
print OUTPUT "{\@RPT|$fehler}\n" if $fehler;
close OUTPUT;
}



Danke im Voraus!

View full thread Verzeichnis öffnen und Dateien durchsuchen