Thread array splitten und in string überführen
(15 answers)
Opened by anou at 2010-10-31 20:53 Quote Wenn ich Deinen davor gemachten Kommentar sehe, dass Du anstatt eigentlich haben wolltest, müsste es doch so Code: (dl
)
(a1, b1, c1, A1, A2, A3, d1, e1, f1) Mit dieser Annahme folgender Code: 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 54 55 #! /usr/bin/perl use strict; use warnings; use Data::Dumper; # datei oeffnen, etc. my @array = ( 'a1 a2 a3 a4 a5 a6', 'b1 b2 b3 b4 b5 b6', 'c1 c2 c3 c4 c5 c6', 'd1 d2 d3 d4 d5 d6', 'e1 e2 e3 e4 e5 e6', 'f1 f2 f3 f4 f5 f6', ); my @spalten; for my $str ( @array ) { my @arr = split m{ }, $str; # erzeuge AoA; der aeussere Index kennzeichnet die Spalte, # der innere Array hat die Elemente der Spalte for my $i ( 0 .. $#arr ) { push @{$spalten[$i]}, $arr[$i]; } # Kontrollausgabe warn Dumper( \@spalten ), $/; } # "datei" auslesen while ( my $line = <DATA> ) { chomp $line; # umbruch entfernen # Sollte 3 Felder (z.B. A,A1,A2) ergeben my @fields = split m{ }, $line; # fuer jede Spaltensammlung for my $aRef ( @spalten ) { # dereferenziere die Spaltensammlung und arbeite mit Kopie my @result = @$aRef; # fuege die eben ermittelten 3 Felder in die Kopie splice(@result,3,0,@fields); # gebe Ergebnis aus print join( ', ', @result), "\n"; } } __DATA__ A1 A2 A3 B1 B2 B3 C1 C2 C3 edits: +- Im Code @cols durch @spalten ersetzt Last edited: 2010-10-31 22:59:02 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |