Thread localtime session (2 answers)
Opened by sabeth at 2005-11-08 13:39

Strat
 2005-11-08 15:10
#59882 #59882
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn da immer eine leerzeile zwischen den einzelnen bloecken ist, kannst du es vielleicht folgendermaszen machen (nicht getestet):
Code: (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
my $filename = "blablablubb.txt";
unless (open (FILE, "<", $filename)) {
die "Error: couldn't read file '$filename': $!\n";
} # unless
else {
local $/ = "\n\n"; # nicht zeilen, sondern bloecke lesen (trenner ist \n\n)

while (<FILE>) { # $_ enthaelt nun jeweils einen ganzen block
chomp($_); # \n\n am ende entfernen
my ($date, @rest) = split(/\n/, $_); # aufsplitten nach \n, erste zeile $date zuweisen
my %data = ();
foreach my $line (@rest) {
my ($key, $value) = split(/\s*=\s*/, $line, 2); # an = aufsplitten in maximal 2 teile
$key =~ s/^\s+//; # leerzeichen am anfang abschneiden
$data{$key} = $value; # wenn $key mehrmals vorkommt, ueberschreibst du dir aeltere keys
} # foreach

# mach was mit $date und %data, z.B.
print "Datum: $date\n";
foreach my $key (sort keys %data) {
print "$key: $data{$key}\n";
} # foreach
print "-" x 60, "\n";

} # while

close (FILE);
} # else


schau dir auch mal meine einfuehrung in perl an; die steht auf meiner HP unter Vortraege...\n\n

<!--EDIT|Strat|1131455544-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread localtime session