Hallo,
habe das Problem das eine Zeichenkette in einer Datei gefunden werden soll und danach ein Ergebnis geliefert werden soll. Nun alles klappt aber leider bringt er für jede Zeile in der er ein Teil des Strings findet ein Ergebnis. So und nun schreibt er mir in meine Ergebnisdatei für jede Zeile in der er was gefunden hat ein Ergebnis.
Hier mal der Code:
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
sub DateiCheck
{
my $DateiCheck = 0;
# Hier wird das verzeichnis geöffnet und geprüft ob gesuchte Datei im Verzeichnis liegt.
my $DateiName1 = $DateiName;
my $temp = $DateiName;
my $verzeichnis = $SqlSrvJobs;
#print
if (existsFileInDirectory($DateiName1, $verzeichnis))
{
print LogDatei '#' x 120, "\n";
print LogDatei '#' x 120, "\n";
print LogDatei "Die Datei: $DateiName1 wurde im Verzeichnis: $verzeichnis gefunden!\n";
# Hier wird die Datei auf aktuelles Datum geprüft. Ergebnis wird dann ausgegeben.
print LogDatei ("INFO : ","Der Zeitstempel der Datei wird geprüft!\n");
my $dir = $SqlSrvJobs;
opendir(DIR,$dir) or die $!; # Verzeichnis "öffnen"
my @verzeichnisse = grep{-f $dir .'/'.$_}readdir(DIR);
for my $file(@verzeichnisse)
{
my $file = $SqlSrvJobs2;
if(existsGlobalCheck($file,24))
{
# Wenn Datei im Verzeichnis vorhanden, dann prüfen ob Suchstring in der Datei enthalten ist.
print LogDatei "Die Datei: " . $file . " wurde im Verzeichnis gefunden und hat ein aktuelles Datum!\n";
print LogDatei '+' x 120, "\n";
print LogDatei "Die Datei: " . $file . " wird gelesen und geprüft!\n";
my $file = $SqlSrvJobs2;
my $check = ' R E S T O R E D A T A B A S E s u c c e s s f u l l y p r o c e s s e d';
open (IN, $file) || die "File kann nicht geoeffnet werden !\n";
open my $fh,'<',$file or die $!;
while( my $line = <$fh> ) <<<<------- Hier an der Stelle liegt das Problem irgendwo begraben
{
if( $line =~ m/\Q$check\E/i)
{
$DateiCheck = 1;
last;
}
}
if ($DateiCheck == 1)
{
print LogDatei "Der Suchstring in der Datei wurde gefunden!! \n";
print LogDatei '+' x 120, "\n";
}
else
{
print LogDatei "Der Suchstring in der Datei wurde nicht gefunden!! \n";
}
}
else
{
print LogDatei "Es besteht in dem Verzeichnis keine aktuelle Datei!\n";
$DateiCheck = 0;
}
}
}
else
{
$DateiCheck = 0;
print LogDatei "Die Datei: $DateiName1 wurde im Verzeichnis: $verzeichnis nicht gefunden!\n";
}
## Hier wird nach Durchlauf der Kontrolle ein Statment abgegeben wenn keine aktuellen Dateien vorhanden sind!
unless($DateiCheck)
{
print LogDatei "Prüfung abgebrochen, da eine der Prüfungen nicht OK war!! Bitte prüfen!!!\n";
}
return $DateiCheck # Hier wird der ermittelte Rückgabewert aus der Subroutine übergeben!
} # End of: sub DATEI CHECK
Danke erstmal für die Hilfe\n\n
<!--EDIT|leissi|1178810017-->