Thread Einträge im Array löschen, auslesen, .. (16 answers)
Opened by Gast at 2005-11-21 12:35

Crian
 2005-11-22 16:21
#60277 #60277
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Dann besser so (die Titel für die Hashbildung verwenden):

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
#!/usr/bin/perl
use strict;
use warnings;

use Data::Dumper; $Data::Dumper::Sortkeys = 1;

my @Array1 = (
    'Nr;Name;Vorname;Strasse;Ort',
    '1;Bauer;Otto;Heuweg 1;Bonn',
    '2;Mueller;Mark;Holzweg 2;Berlin',
    '3;Schreiber;Stefan;Hochweg 3;Muenchen',
);

print "Array = ", Dumper \@Array1;

my @Array2; # hier kommt spter alles rein

# Ueberschrift entfernen und speichern:
my @Title = split /;/, shift @Array1;
my $N = @Title;

print "Title = ", Dumper \@Title;

print "Array = ", Dumper \@Array1;

for (@Array1) {
    # am semikolon auftrennen
    my @line = split /;/;
    die "Falsche Anzahl Elemente" unless $N == @line;

    # als anonymen Hash zuweisen
    my %hash;
    for my $i (0 .. $N-1) {
        $hash{$Title[$i]} = $line[$i]; # wir hoffen, dass alle Spalten unterschiedliche Titel haben...
    }
    push @Array2, { %hash };
}

print "Array2 = ", Dumper \@Array2;

# auf einzelne Werte zugreifen
print $Array2[1]->{'Vorname'} . ' ' . $Array2[1]->{'Name'}    . " \n";
print $Array2[2]->{$Title[2]} . ' ' . $Array2[2]->{$Title[1]} . " \n";


Ausgabe:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Array = $VAR1 = [
'Nr;Name;Vorname;Strasse;Ort',
'1;Bauer;Otto;Heuweg 1;Bonn',
'2;Mueller;Mark;Holzweg 2;Berlin',
'3;Schreiber;Stefan;Hochweg 3;Muenchen'
];
Title = $VAR1 = [
'Nr',
'Name',
'Vorname',
'Strasse',
'Ort'
];
Array = $VAR1 = [
'1;Bauer;Otto;Heuweg 1;Bonn',
'2;Mueller;Mark;Holzweg 2;Berlin',
'3;Schreiber;Stefan;Hochweg 3;Muenchen'
];
Array2 = $VAR1 = [
{
'Name' => 'Bauer',
'Nr' => '1',
'Ort' => 'Bonn',
'Strasse' => 'Heuweg 1',
'Vorname' => 'Otto'
},
{
'Name' => 'Mueller',
'Nr' => '2',
'Ort' => 'Berlin',
'Strasse' => 'Holzweg 2',
'Vorname' => 'Mark'
},
{
'Name' => 'Schreiber',
'Nr' => '3',
'Ort' => 'Muenchen',
'Strasse' => 'Hochweg 3',
'Vorname' => 'Stefan'
}
];
Mark Mueller
Stefan Schreiber
\n\n

<!--EDIT|Crian|1132670374-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread Einträge im Array löschen, auslesen, ..