Hallo renee,
an sich funktioniert das Script aber es sind zwei kleine Probleme.
1. Das script funktioniert nicht wenn der Dateiname nicht *.txt sondern *.log heisst (finde ich seltsam)
2. Ich weiss nicht wie ich es bei mir einbetten soll.
hier mein erster Versuch des Sciptes
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
use strict;
use warnings;
use Tie::File;
use Archive::Zip;
use Archive::Zip::MemberRead;
use File::Glob ':glob';
my $Zip_File = 'ON_35110000_11485_AP06_UTC_29.06.2009_18.25.zip';
my $String = 'SYSTEM NOT AVAILABLE';
my $zip = new Archive::Zip($Zip_File);
my @file2 = $zip->membersMatching( '.*' );
for my $file2 (@file2){
my $fh = new Archive::Zip::MemberRead($zip, $file2);
my $fh2 = $file2->fileName();
print $fh2,"\n";
while (defined(my $line = $fh->getline())) {
chomp($line);
tie my @line, 'Tie::File', $fh2 or die $!;
for my $i ( 0 .. $#line ) {
if ($line[$i] =~ /$String/) {
my $Zeile = $fh->input_line_number;
my $read = $fh->read(my $buffer, 32*1024);
open(LOG, ">>result.txt") or die $!;
print LOG $line[ $i-23 ];
close LOG;
untie @line;
}
}
$fh->close();
}
}
Der Fehler hier ist "No such file or directory at.." und bezieht sich auf die Zeile 25 "tie my @line, 'Tie::File', $fh2 or die $!;" Ich vermute er kann auf die im ZIP eingepakte Datei nicht zugreifen.
Bin noch am suchen wo ich was ändern muss.
Merci und Gr. Remo