Thread Newbie - Einlesen von Text in arrays
(18 answers)
Opened by PatrickS at 2004-12-27 15:24
[quote=PatrickS,29.12.2004, 08:39]ich versuch jetzt die Zeilen in Arrays einzulesen und mithilfe der & zu splitten.[/quote]
dafuer kannst du die Funktion ParseLine verwenden, die ich oben angegeben habe. Da bekommst du einen Hash zurueck, z.B. 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 unless (open (FH, $filename)) { die "Error: couldn't read '$filename': $!"; } while (<FH>) { chomp($_); # zeilenumbruch am ende killen my %items = &ParseLine($_); # mach was mit %items } # while close (FH); # ----------------------------------------------------- sub ParseLine { my ($line) = @_; my %data = (); foreach my $item (split(/,/, $line)) { # item ist z.B. "Ursrpung=001" # $key ist z.B. "Ursprung", $value z.B. "001" my ($key, $value) = split(/=/, $item, 2); # in hash speichern; achtung, falls ein key mehrere werte hat, bleibt nur # der letzte $data{$key} = $value; } # foreach return %data; } # ParseLine So Sachen parse ich nur ungern mit regulaeren Ausdruecken, denn wenn sich die Reihenfolge der Felder aendert oder neue Felder hinzukommen, fliegt einem der regulaere Ausdruck um die Ohren, und man bekommt gar nichts mehr (ok, sowas kann ja gewuenscht sein). Mit split nach hash bekommt man da die neuen felder auch gleich automatisch\n\n <!--EDIT|Strat|1104793759--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |