Leser: 1
|< 1 2 >| | 20 Einträge, 2 Seiten |
Quote--- Kundenname: Meyer
DatensatzA 1
DatensatzA 2
DatensatzA 3
DatensatzA 4
DatensatzA 5
DatensatzA 6
--- Kundenname: Müller
DatensatzB 1
DatensatzB 2
DatensatzB 3
--- Kundenname: Schulze
DatensatzC 1
DatensatzC 2
DatensatzC 3
DatensatzC 4
DatensatzC 5
DatensatzC 6
DatensatzC 7
$kundeInfoHash{$kundenName} = [\@kundenDatenArray];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
open(TEMP_R, '<', $tempfile) || die "Error: ";
while (<TEMP_R>)
{
if ($_ =~ /--- Kundenname:/)
{
if ($kundenFound == 1)
{
$kundenInfoHash{$kundenName} = \@kundenMesArray; # hier passierts => immer wieder die gleiche Adresse!!!!!!!!
}
$kundenName = "";
$kundenName = $_;
$kundenName =~ s/\--- kunden: //; # delete string "--- kunden: " at begin of line
$kundenName =~ s/\s\(C\)//; # delte string " (C)" at end of line
chomp($kundenName); # deletes "\n" at end of line
$kundenName = substr($kundenName, rindex($kundenName,'\\')+1);
push(@kundenNamesArray, $kundenName);
$kundenFound = 1;
}
else
{
push(@kundenMesArray, $_);
}
}
close(TEMP_R); # close TEMP-FILE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while (my ($key, $value) = each(%kundenInfoHash))
{
if ($key =~ "Schulze")
{
print $value . "\n";
$kundenMesArrayRef = $value;
}
}
@kundenMesArray = @$kundenMesArrayRef;
for (my $i = 0; $i < @kundenMesArray; $i++)
{
print $i . " " . $kundenMesArray[$i] . "\n";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %hash;
my $file = '/path/to/file';
{
local $/ = "\n\n---"; # mehr zu $/ siehe perldoc perlvar
open my $fh, '<',$file or die $!;
while(my $entry = <$fh>){
chomp $entry;
my ($kd,@daten) = split /\n/,$entry;
$kd =~ s/^\s*Kundennummer:\s*//;
$hash{$kd} = \@daten;
}
close $fh;
}
print Dumper(\%hash);
kundenInfoHash{$kundenName} = [@kundenMesArray];
kundenInfoHash{$kundenName} = \@kundenMesArray;
1
2
3
4
5
6
7
8
9
10
11
12
while (my ($key, $value) = each(%kundenInfoHash))
{
print $key . " *** " . $value . "\n";
my @kundenMesArray = @$value;
my $anz2 = @kundenMesArray;
print "main: ----------->" . $anz2 . "\n";
for (my $i = 0; $i < @kundenMesArray; $i++)
{
print $i . " " . $kundenMesArray[$i];
}
}
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
# ich benutze lieber eine Variable als FH
my $hTempFile;
open($hTempFile, '<', $tempfile) || die "Error: $!";
# dieser Kundenname wird benutzt, falls Kundendaten vor
# --- Kundenname: gefunden werden
my $blockname = "default";
# und wir nehmen einen Zähler für die Kundendaten
my $counter = -1;
# $_ finde ich nicht so schön
while my$line (<$hTempFile>)
{
# Leerzeilen überspringen
next if $line =~ /^\s*$/;
# jetzt kannst du auf einen Kunden prüfen
if ($line =~ /^\s*---\s*Kundenname:\s*(.+?)\s*$/)
{
$counter = -1;
$blockname = $1;
$kundenInfoHash{$blockname} = [] if ! exists($kundenInfoHash{$blockname});
}
# oder eben auf Daten
elsif ($line =~ /^\s*(.+?)\s*$/)
{
my $daten = $1;
$counter++;
$kundenInfoHash{$blockname}->[$counter] = $daten;
}
}
close($hTempFile); # close TEMP-FILE
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
#!/usr/bin/perl
use strict;
use warnings;
use YAML;
use Data::Dumper;
my $ref = [Load(<<'...')];
---
Kundenname: Meyer
Datensatz:
- DatensatzA 1
- DatensatzA 2
- DatensatzA 3
- DatensatzA 4
- DatensatzA 5
- DatensatzA 6
---
Kundenname: Müller
Datensatz:
- DatensatzB 1
- DatensatzB 2
- DatensatzB 3
---
Kundenname: Schulze
Datensatz:
- DatensatzC 1
- DatensatzC 2
- DatensatzC 3
- DatensatzC 4
- DatensatzC 5
- DatensatzC 6
- DatensatzC 7);
...
print Dumper($ref);
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
$VAR1 = [
{
'Datensatz' => [
'DatensatzA 1',
'DatensatzA 2',
'DatensatzA 3',
'DatensatzA 4',
'DatensatzA 5',
'DatensatzA 6'
],
'Kundenname' => 'Meyer'
},
{
'Datensatz' => [
'DatensatzB 1',
'DatensatzB 2',
'DatensatzB 3'
],
'Kundenname' => 'Müller'
},
{
'Datensatz' => [
'DatensatzC 1',
'DatensatzC 2',
'DatensatzC 3',
'DatensatzC 4',
'DatensatzC 5',
'DatensatzC 6',
'DatensatzC 7;'
],
'Kundenname' => 'Schulze'
}
];
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
CREATE DATABASE Kalmuecke;
use Kalmuecke;
GRANT ALL PRIVILEGES ON Kalmuecke.* TO 'Kalmuecke'@'localhost' IDENTIFIED BY 'passwort';
CREATE TABLE kunden (
kunde VARCHAR(255) NOT NULL,
datensatz VARCHAR(255) NOT NULL,
INDEX kunde_idx(kunde)
) TYPE=InnoDB;
INSERT INTO kunden values ('Meyer', 'DatensatzA 1');
INSERT INTO kunden values ('Meyer', 'DatensatzA 2');
INSERT INTO kunden values ('Meyer', 'DatensatzA 3');
INSERT INTO kunden values ('Meyer', 'DatensatzA 4');
INSERT INTO kunden values ('Meyer', 'DatensatzA 5');
INSERT INTO kunden values ('Meyer', 'DatensatzA 6');
INSERT INTO kunden values ('Müller', 'DatensatzB 1');
INSERT INTO kunden values ('Müller', 'DatensatzB 2');
INSERT INTO kunden values ('Müller', 'DatensatzB 3');
INSERT INTO kunden values ('Schulze', 'DatensatzC 1');
INSERT INTO kunden values ('Schulze', 'DatensatzC 2');
INSERT INTO kunden values ('Schulze', 'DatensatzC 3');
INSERT INTO kunden values ('Schulze', 'DatensatzC 4');
INSERT INTO kunden values ('Schulze', 'DatensatzC 5');
INSERT INTO kunden values ('Schulze', 'DatensatzC 6');
INSERT INTO kunden values ('Schulze', 'DatensatzC 7');
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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use DBI;
my %db = (
name => 'Kalmuecke',
user => 'Kalmuecke',
pass => 'passwort',
host => 'localhost',
port => 3306,
type => 'mysql',
);
my $kunde = $ARGV[0] || die "Usage: $0 <kunde>\n";
my $select = "select datensatz from kunden where kunde = '$kunde'";
my $con = "DBI:$db{type}:database=$db{name};host=$db{host};port=$db{port}";
my $dbh = DBI->connect($con, $db{user}, $db{pass}) or die DBI->errstr;
my $sth = $dbh->prepare($select) or die $dbh->errstr;
$sth->execute() or die $sth->errstr;
my %kunden;
while (my $msg = $sth->fetchrow_hashref) {
push @{$kunden{$kunde}}, $msg->{datensatz};
}
$sth->finish or die $sth->errstr;
$dbh->disconnect or die $dbh->errstr;
print Dumper(\%kunden);
1
2
3
4
5
6
7
my $select = "select datensatz from kunden where kunde = ?";
my $con = "DBI:$db{type}:database=$db{name};host=$db{host};port=$db{port}";
my $dbh = DBI->connect($con, $db{user}, $db{pass}) or die DBI->errstr;
my $sth = $dbh->prepare($select) or die $dbh->errstr;
$sth->execute($kunde) or die $sth->errstr;
|< 1 2 >| | 20 Einträge, 2 Seiten |