3 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
open DATEI_S, $dateiname_s
or die "Kann $dateiname_s nicht oeffnen: $!";
while(<DATEI_S>){
chomp ($_);
if ($_=~/^[0-9]{4}/){
if ((length($_)!=78)) {
push (@s_fail, $dateiname_s);
}
}
1
2
3
4
5
6
7
8
while(<DATEI_S>){
$check=0;
chomp ($_);
$first_char=ord(substr($_,0,1));
if ((length($_)!=78) && (!($_=~/^\s*$/)) && ($first_char!=26) ) {
$check=1;
}
}
1
2
3
4
5
6
7
8
while (my $line = <$fh>) {
if (length($line) == 78 && $line =~ /^[0-9]{4}/) {
# diese Zeile ist einwandfrei
} else
push @s_fail, $line
unless ord(substr($_,0,1) == 26;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
open my $out, '>', $file_out or die $!;
for my $dateiname_s (@files) {
my $counter = 0;
open my $in, '<', $dateiname_s or do {
warn "Kann $dateiname_s nicht oeffnen: $!";
next; # ab zur naechsten Datei
}
while (my $line = <$in>){
++$counter;
chomp($line);
next unless length($line) == 78 && $line =~ /^[0-9]{4}/;
print $out "$dateiname_s $counter $line\n"
unless ord(substr($line,0,1) == 26;
}
close $in;
}
close $out;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use strict;
use warnings;
for my $datafilename (@ARGV) {
open my $datafh, '<', $datafilename or die "cannot open $datafilename: $!\n";
my $error=0;
while(my $line = <$datafh>){
chomp $line;
my $first_char = substr($line, 0, 1);
if (length($line) != 78 && $line !~ /^\s*$/ && $first_char != chr(26)) {
$error=1; # setze Fehler-Flag
last; # ueberspringe Rest der Datei
}
}
# Evtl. Namen der fehlerhaften Datei ausgeben
if ($error) {
print "File $datafilename ist fehlerhaft!\n";
}
}
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
use strict;
use warnings;
for my $datafilename (@ARGV) {
open my $datafh, '<', $datafilename or die "cannot open $datafilename: $!\n";
my $error=0;
my $last_line=0;
while(my $line = <$datafh>){
chomp $line;
if ($last_line) {
# Wenn wir hierher kommen, hatte die letzte Zeile einen Fehler
$error = 1;
# Einlesen abbrechen
last;
}
if (length $line != 78 || $line !~ /^\d{4}\D/) {
# keine 78 Zeichen oder keine 4 Ziffern am Anfang
if ($line =~ /^\s*$/ || substr($line, 0, 1) == chr(26)) {
# leer oder chr(26) am Anfang, könnte also die letzte Zeile sein
$last_line=1;
# versuchen wir mal, die nächste Zeile zu lesen
next;
} else {
# offensichtlich eine fehlerhafte Zeile
$error = 1;
# Einlesen abbrechen
last;
}
}
# Wenn wir hier hin kommen, ist die eingelesene Zeile korrekt
}
# Wenn Fehler, Namen der fehlerhaften Datei ausgeben
if ($error) {
print "File $datafilename ist fehlerhaft!\n";
}
}
3 Einträge, 1 Seite |