Thread automatisch radiobuttons erzeugen (24 answers)
Opened by perln00b at 2010-01-20 18:33

Kalle
 2010-01-26 10:31
#131247 #131247
User since
2007-03-18
48 Artikel
BenutzerIn
[default_avatar]
Weiss immer noch nicht so genau, was du damit eigentlich machen willst, aber dreimal cat ausführen, um eine Zeile zu zerlegen sieht nicht gar so effizient aus.
Probier doch mal das open Kommando und lies alle Daten, die du brauchst erstmal ein und bereite sie dann auf. So zum Beispiel:

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
#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $mw = tkinit();
my @radiobuttons;
my $var;

my $filename='text.cfg';
my $filehandle;
my $meinedaten;

open ($filehandle,'<',$filename) or die "Kann $filename nicht öffnen!\nFehler: $!";
while (<$filehandle>) {
chomp;
next if (/^\s*$|^#/);
my ($name,$pfad1,$pfad2)=split(/\s+/,$_,3);
$meinedaten->{$name}->{'pfad1'}=$pfad1;
$meinedaten->{$name}->{'pfad2'}=$pfad2;

my $rb = $mw->Radiobutton( -variable => \$var, -text => $name, -value => $name, -command=>sub{getPfad($name)})->pack;
push @radiobuttons, $rb;

}
close ($filehandle);

$radiobuttons[0]->select;
my $ausspuckfeld = $mw->Label(-textvariable =>\$var, -borderwidth => 2,-relief =>'sunken')->pack(-fill => 'x');

MainLoop;

sub getPfad {
my $diesername=shift;
my $pfad_lokal=$meinedaten->{$diesername}->{'pfad1'};
my $pfad2_lokal=$meinedaten->{$diesername}->{'pfad2'};
print "Name: $diesername\n";
print "Pfad1: $pfad_lokal\n";
print "Pfad2: $pfad2_lokal\n\n";
}


Das benutzte Splitkommando funktioniert aber nur, wenn deine Pfade keine Leerzeichen enthalten.



View full thread automatisch radiobuttons erzeugen