Thread Informationen aus Datei lesen und formatieren
(12 answers)
Opened by korkak at 2013-07-06 14:15
ok. Versuch folgendes nachzuvollziehen:
Code (perl): (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 #! perl use warnings; use strict; open my $inFH, '<', 'meineEingabedatei' or die "$!"; open my $outFH, '>', 'meineAusgabedatei' or die "$!"; READ_HANS: while (my $hansLine = <$inFH>) { my ($variable_1, $variable_2); if ($hansLine =~ /\A HANS .* 9999 (\d{3}) /x) { $variable_1 = $1; } elsif ($hansLine =~ /\A HANS .* 8888 (\d{4}) /x) { $variable_1 = $1; } elsif ($hansLine =~ /\A HANS .* 7777 /x) { $variable_1 = "FEHLER"; } else { next READ_HANS; } # ab hier ist $variable_1 definiert READ_DAMPF: while (my $dampfLine = <$inFH>) { if ($dampfLine =~ /\A DAMPF .* 0000 (\d+) /x) { $variable_2 = $1; last READ_DAMPF; } else { next READ_DAMPF; } } last READ_HANS if ! defined $variable_2; # <-- ergänzt if ($variable_1 eq 'FEHLER') { print $outFH "Fehler, bitte manuell prüfen.\n"; } else { print $outFH "ZUSATZ_FORMAT_A $variable_1 " ."ZUSATZ_FORMAT_B $variable_2 " ."ZUSATZ_FORMAT_C\n"; } } # nächste HANSzeile suchen close $inFH; close $outFH; btw: \t ist auch whitespace (\s beinhaltet nicht nur spaces) Editiert von FIFO: Schleifenabbruch ergänzt, falls keine gültige DAMPFzeile bis eof. Last edited: 2013-07-06 20:31:05 +0200 (CEST) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|