Thread korrektes Auslesen von Daten aus einem File (4 answers)
Opened by ajcountry at 2008-07-31 16:26

moritz
 2008-07-31 16:43
#112945 #112945
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Ich denke du machst es dir unnötig schwer. Durch das auftrennen des Lesens aus der Datei in verschiedene Subs ist es schwer zu erkennen, was wo genau passiert.

Ich hab mal ein Beispiel geschrieben, wie ich das ganze in eine verschachteltes Array packen würde:

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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my @tables;

while (<DATA>){
    chomp;
    next if m/^\|/;
    if (m/^\[Wertetabelle\d\]/){
        # neue Tabelle anlegen
        push @tables, [];
    } elsif (m/^\[Zeile\]/) {
        # neue Zeile anlegen
        push @{$tables[-1]}, [];
    } else {
        # Daten reinschaufeln:
        push @{$tables[-1][-1]}, [split];
    }
}
print Dumper \@tables;


__DATA__
[Wertetabelle1]
|
[Zeile]
A1 3.227
A2 1.127
A3 -1.471
[Zeile]
B1 6.684
B2 1.054
...


Ich vermute, dass das Problem mit deinem Lösungsansatz ist, dass du in der while-Schleife eine Zeile liest, und die in der for-Schleife nicht weiterverwendest sondern einfach eine neue Zeile ausliest.

View full thread korrektes Auslesen von Daten aus einem File