Thread Informationen aus Datei lesen und formatieren
(12 answers)
Opened by korkak at 2013-07-06 14:15
Hi,
wenn Deine Datei immer und ausschließlich aus diesen Zeilentripletts besteht, kannst Du z.B. immer 3 Zeilen einlesen: 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 #! perl use warnings; use strict; open my $inFH, '<', 'meineEingabedatei' or die "$!"; open my $outFH, '>', 'meineAusgabedatei' or die "$!"; while (! eof($inFH)) { my ($variable_1, $variable_2); # Erste Zeile my $hansLine = <$inFH>; last if eof($inFH) or $hansLine !~ /\A HANS (\d{4}) (\d+) /x; if ($1 eq '9999') { $variable_1 = substr($2, 0, 3); } elsif ($1 eq '8888') { $variable_1 = substr($2, 0, 4); } elsif ($1 eq '7777') { $variable_1 = "FEHLER"; } last if ! defined $variable_1; # Zweite Zeile my $dampfLine = <$inFH>; last if eof($inFH) or $dampfLine !~ /\A DAMPF0000 (\d+) /x; $variable_2 = $1; # Dritte Zeile (nicht verwendet) my $gasseLine = <$inFH>; 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"; } } close $inFH; close $outFH; Das ist sozusagen eine Simpellösung für Deinen Spezialfall. Die Schleife bricht ab, sobald die Zeilen nicht Deiner Formatvorgabe folgen. HTH, FIFO 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"
|