Hallo,
ich habe drei Subroutinen die drei verschiedene Dateien prüfen. Da die die Subroutinen identisch sind, möchte ich diese zusammenlegen. Frage wie kann ich sowas machen!
Hier ein Ausschnitt:
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
sub ResetQcDemoPJ
{
my $ResetQcDemoPJ = 0;
# Hier wird das verzeichnis geöffnet und geprüft ob gesuchte Datei im Verzeichnis liegt.
my $DateiName = $DateiName;
my $verzeichnis = $SqlSrvJobs;
if (existsFileInDirectory($DateiName, $verzeichnis))
{
print LogDatei '#' x 120, "\n";
print LogDatei '#' x 120, "\n";
print LogDatei "Die Datei: $DateiName 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);
my $file = $SqlSrvJobs2;
if(existsTimeStamp($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 $String = $String1;
if (existsFileString ($file, $String))
{
print LogDatei "Der Suchstring in der Datei wurde gefunden!! \n";
print LogDatei '+' x 120, "\n";
$ResetQcDemoPJ = 1;
}
else
{
print LogDatei "Der Suchstring in der Datei wurde nicht gefunden!! \n";
$ResetQcDemoPJ = 0;
}
}
else
{
print LogDatei "Es besteht in dem Verzeichnis keine aktuelle Datei!\n";
$ResetQcDemoPJ = 0;
}
}
else
{
$ResetQcDemoPJ = 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($ResetQcDemoPJ)
{
print LogDatei "Prüfung abgebrochen, da eine der Prüfungen nicht OK war!! Bitte prüfen!!!\n";
}
print LogDatei "$ResetQcDemoPJ";
return $ResetQcDemoPJ # Hier wird der ermittelte Rückgabewert aus der Subroutine übergeben!
} # End of: sub DATEI CHECK
#close ResetQcDemoPJ
Die beiden nächsten sind komplett identisch. Ich wollte dies durch eine while Schleife machen aber irgendwie hat das nicht geklappt.
Gruss
Leissi