Thread Multidimensionales Array mit Daten aus Datenbank füllen. (13 answers)
Opened by lordsirkendorf at 2009-09-16 14:55

Gast wer
 2009-09-16 15:55
#125868 #125868
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";

View full thread Multidimensionales Array mit Daten aus Datenbank füllen.