Thread Auslesen verschiedener Daten aus einem File: Wie programmiere ich übersichtlich und effizient? (3 answers)
Opened by Sven_123 at 2011-09-23 14:02

Sven_123
 2011-09-23 15:00
#152635 #152635
User since
2010-06-01
120 Artikel
BenutzerIn
[default_avatar]
Ah, ich glaub, mir ist ne gute Möglichkeit eingefallen:
Ich füll mir in jedem Durchlauf einen Array mit Referenzen auf Subroutinen, die die einzelnen Informationen, die ich brauch extrahieren und klapper den dann in jeder Zeile ab...muss ich nur noch rausfinden, wie sich ein <$file> in ner Subroutine außerhalb der while-Schleife auf die Schleife auswirkt, aber das schaff ich...

Edit: Tataa! :)
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
52
53
#!/usr/bin/perl
use strict;
use warnings;
my ($e,$g);
printtext();

{
my ($x,$y);
open my $in, "< text" or die;
defsubs();

my @j = ($x,$y);
while (<$in>){print "while: $_"; for my $j (@j){$j->($_)}}

print "e: $e; v: $g;\n";


#+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+#
        sub defsubs{

$x = sub{       #Energie-Auslese-Sub
 if ($_[0] =~ /Energie: (\d+)/){$e = $1}
};

$y = sub{       #Gradient-Auslese-Sub
 if ($_[0] =~ /Gradient/){
        $_ = <$in>; $_ = <$in>; $_ = <$in>;
        s/^\s+//; my @l = split;
        $g = sqrt($l[0]**2+$l[1]**2+$l[2]**2);
 }
};

        }
#+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+#
}
system "rm text";

        sub printtext{

if (-e "text"){die "text existiert...\n"}
open my $txt, "> text" or die;
print $txt
"Test
1
Energie: 20
als nächstes der
Gradient
gleich
gleich
 1 2 3
Ende\n";

        }

Last edited: 2011-09-23 17:00:20 +0200 (CEST)

View full thread Auslesen verschiedener Daten aus einem File: Wie programmiere ich übersichtlich und effizient?