# !bin\perl\ # AS 31.05.07 $quelle = $ARGV[0]; $x = $ARGV[0]; $x =~ s/(\w+)\.\w+/$1/; $ziel = $x; #~~~ Datei einlesen und TXT-Datei erzeugen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ open ($INPUT,"<$quelle") or die "konnte $ziel nicht oeffnen,$!\n"; undef $/;   ;   ; # bringt die Datei ins Skalare, ist somit leichter zu suchen open (OUTPUT,">$ziel.txt") or die "konnte $ziel nicht oeffnen,$!\n"; # Übergabe von der Input-Datei in $_ $_ = <$INPUT>; close ($INPUT); # damit man später in dieser suchen kann #~~~ Ende ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #~~~ Einlesen von Seriennummer, Sachnummer, Datum (Start und Ende), Kundennummer ~~~~~~ # Sachnummer in $sachnummer speichern ($sachnummer) = /Sachnummer:\s(\w+)/sm; ($kundennummer) = /Kundennummer:\s(\w+)/sm; ($serien_nr) = /Flexnummer:\s(\d{2}.\d{4}.\d{4})/sm; # wie bei der Sachnummer @sd = $serien_nr =~ /(\d{2}).(\d{4}).(\d{4})/gs; $seriennummer = $sd[0].$sd[1].$sd[2]; ($startdate) = /(\d{2}.\d{2}.\d{4} \d{2}:\d{2}:\d{2}) /sm; # wie bei der Sachnummer @y = $startdate =~ /(\d{2}).(\d{2}).\d{2}(\d{2}) (\d{2}):(\d{2}):(\d{2})/gs; $starttest = $y[2].$y[1].$y[0].$y[3].$y[4].$y[5]; #~~~ Ende ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #~~~ Ausgabe in Textdatei~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (grep (m/F A I L/, $_)) &nb sp; &nb sp; # sucht nach FAIL in $_ (enthält den Inhalt des Dokuments) { $status = "01"; $result = "Faild"; ($endedate) = /(\d{2}:\d{2}:\d{2} F A I L)/sm; @z = $endedate =~ /(\d{2}):(\d{2}):(\d{2})/gs; $endetest = $y[2].$y[1].$y[0].$z[0].$z[1].$z[2]; #($fehler) = /PASS\s(w+)\sFAIL/gsm; } else { $status = "00"; $result = "Passed"; ($endedate) = /(\d{2}:\d{2}:\d{2}\sP A S S)/sm; @z = $endedate =~ /(\d{2}):(\d{2}):(\d{2})/gs; $endetest = $y[2].$y[1].$y[0].$z[0].$z[1].$z[2]; } 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 #~~~ Ende ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ close OUTPUT; # --> END of Code