Thread Suchen von Unten nach Oben: Suchen von UNTEN nach OBEN (57 answers)
Opened by yasukatakaya at 2007-05-31 11:57

bloonix
 2007-06-04 16:04
#77111 #77111
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Code: (dl )
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
my ($sachnummer, $kundennummer, $seriennummer, $starttest, $endetest);
my ($status, $result, $fehler, @fehler, $date, $start_pos, $end_pos);

open my $fh, '<', 'data.txt' or die $!;

while (my $line = <$fh>) {
  if (!$starttest && $line =~ /(\d\d)\.(\d\d)\.\d\d(\d\d)\s+(\d\d):(\d\d):(\d\d)/) {
     $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*AATHD(\d+)\./) {
     $sachnummer = $1;
  } elsif (!$kundennummer && $line =~ /Kundennummer:\s*(\d+)/) {
     $kundennummer = $1;
  } elsif (!$seriennummer && $line =~ /Flexnummer:\s*([0-9\.]+)/) {
     $seriennummer = $1;
     $seriennummer =~ s/\.//g;
  } elsif ($line =~ /PASS/) {
     $start_pos = tell($fh);
  } elsif ($line =~ /FAIL/) {
     $end_pos = tell($fh);
  }
}

if ($end_pos) {
  $status = '01';
  $result = 'Failed';

  seek($fh, $start_pos, 0);
  my $hit;

  while (my $line = <$fh>) {
     chomp($line);
     last if $hit && $line =~ /^$/;
     $hit = 1 if $line =~ /^$/;
     push @fehler, $line if $hit;
  }

  $fehler = join(' ', @fehler);
  $fehler =~ s/\s+/ /g;

} else {
  $status = '00';
  $result = 'Passed';
}

close $fh;

print "{\@BATCH|$sachnummer||GOEPEL_BSCAN||KDSNR:$kundennummer|ICT||PB/PL_P|uqm161|||\n";
print "{\@BTEST|$seriennummer|$status|$starttest|||||n|n|$endetest||1|\n";
print "{\@RPT|$result}\n";
print "{\@RPT|$fehler}\n" if $fehler;


Bei mir funktioniert es und die Datei wird nicht komplett eingelesen.
Ich merke mir einfach die letzte Position von PASS und springe nachher
einfach nochmal dorthin.\n\n

<!--EDIT|opi|1180958789-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread Suchen von Unten nach Oben: Suchen von UNTEN nach OBEN