# !bin\perl\ # AS 06.06.07 $quelle = $ARGV[0]; $x = $ARGV[0]; $x =~ s/(\w+)\.\w+/$1/; $ziel = $x; open ($INPUT,"<$quelle") or die $!; while ($line = <$INPUT>) { if ($line =~ /.CBT/gsm) { $cbt = 1; } elsif ($line =~ /BARCODE/gsm) { $barcode = 1; } elsif ($line =~ /AATHD000000.000/gsm) { $falscheangabe = 1; } elsif (!$starttest && $line =~ /(\d\d)\.(\d\d)\.\d\d(\d\d)\s+(\d\d):(\d\d):(\d\d)/) { print $line; $date = "$3$2$1"; $starttest = "$3$2$1$4$5$6"; } elsif (!$endetest && $line =~ /(\d\d):(\d\d):(\d\d)\s+(?: P\sA\sS\sS|F\sA\sI\sL)/x) { $endetest = "$date$1$2$3"; } elsif (!$sachnummer && $line =~ /Sachnummer:\s(\w+)\./) { $sachnummer = $1; } elsif (!$kundennummer && $line =~ /Kundennummer:\s*(\d+)/) { $kundennummer = $1; } elsif (!$seriennummer && $line =~ /Flexnummer:\s(\d\d).(\d\d\d\d).(\d\d\d\d)/sm) { $seriennummer = "$1$2$3"; } 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 =~ /^\s/) || ($line =~/^$/)) { $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; }