Thread Informationen aus Datei lesen und formatieren (12 answers)
Opened by korkak at 2013-07-06 14:15

FIFO
 2013-07-06 20:15
#168762 #168762
User since
2005-06-01
469 Artikel
BenutzerIn

user image
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"

View full thread Informationen aus Datei lesen und formatieren