Thread Multidimensionales Array mit Daten aus Datenbank füllen.
(13 answers)
Opened by lordsirkendorf at 2009-09-16 14:55
wie ich schon andeutete musst du erst alle Zeilen einlesen, und kannst dann auf die einzelnen Spalten konkret zugreifen.
Anhand deines Beispiels: 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 use strict; use warnings; use Data::Dumper; my @data; # Tabelle füllen # zum Verständnis unwichtig # nur damit man was zum bearbeiten hat @data=map{$_=[split(/\s+/,$_)]}split(/\n/,<<EOT); PSAPSOURCEI /oracle/CS6/sapdata2/sourcei_1/sourcei.data1 4341104640 31457280000 PSAPSOURCEI /oracle/CS6/sapdata4/sourcei_2/sourcei.data2 3460300800 5242880000 PSAPSTABD /oracle/CS6/sapdata4/stabd_2/stabd.data2 24641536000 31457280000 PSAPSTABD /oracle/CS6/sapdata5/stabd_3/stabd.data3 24704450560 31457280000 EOT # wie sieht das aus: # "Dumper" gibt die Datenstruktur aus print Dumper(\@data)."\n"; # Zugriff auf das Feld in der ersten Zeile in der ersten Spalte: print $data[0][0]."\n"; # Zugriff auf das Feld in die dritten Zeile in der letzte Spalte: print $data[2][-1]."\n"; # Zugriff auf das Feld letzte Zeile, dritte Spalte: print $data[-1][2]."\n"; # Zugriff auf das Feld zweite Zeile, zweite Spalte: print $data[1][1]."\n"; # alle Werte aus der ersten Spalte: for my $line (@data) { print $line->[0]."\n"; } # alle Werte aus der letzten Spalte in ein neues Array my @last_colomn; for my $line (@data) { push(@last_colomn, $line->[-1]); } # alle Werte der vorletzten Spalte aufaddieren: my $summ=0; for my $line (@data) { $summ+=$line->[-2]; } print "$summ\n"; |