1
2
3
$kp->add_group({ group => "$gid1", title => "Server" });
$kp->add_group({ group => "$gid2", title => "Server" });
1
2
my $group = $kp->find_group({ group => "$gid1", title => "Server" });
my $gid2 = $group->{'id'};
Guest SkarFireHabe auch schon gelesen das find_group nur nach einzelnen Gruppen suchen kann, habe aber noch keine andere Möglichkeit gefunden, Gruppen zu suchen.
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
my $kp;
$kp=File::KeePass->new;
$kp->load_db("$kpf", "$pw" );
$kp->unlock;
my $group = $kp->find_group({ title => "$standort" });
my $gid1 = $group->{'id'};
my $gid2 = -1;
my $gid3 = -1;
my $server;
foreach my $sub (@{ $group->{'groups'}})
{
if ( $sub->{'title'} eq "$kategorie" )
{
$gid2 = $sub->{'id'};
#print "2.1 $gid2 \n";
$server = $sub;
last;
}
}
if ($gid2 == -1)
{
print "Gruppe ($kategorie) wurde neu erstellt \n";
my $tmp = $kp->add_group({ group => "$gid1", title => "$kategorie" });
#print "3.3: $tmp->{'id'} \n";
$gid2 = $tmp->{'id'};
}
#print "1 $gid1 \n";
#print "2.2 $gid2 \n";
foreach my $sub (@{ $server->{'groups'}})
{
if ( $sub->{'title'} eq "$grp" )
{
$gid3 = $sub->{'id'};
print "Gruppe existiert \n";
last;
}
}
if ($gid3 == -1)
{
print "Gruppe ($grp) wurde neu erstellt \n";my $tmp = $kp->add_group({ group => "$gid2", title => "$grp" });
#print "3.3: $tmp->{'id'} \n";
$gid3 = $tmp->{'id'};
}
$kp->save_db("$kpf", "$pw");
QuoteAch, du willst innerhalb einer Gruppe in der subgruppe nochmal filtern?
Quote* Kann es sein, dass du in Zeile 37 evtl. auf einen nicht initialisierten $server zugreifst oder überseh ich was?
Quote$server wird in der Zeile 12 initialisiert und bekommt in Zeile 20 die Werte von sub.