Schrift
[thread]4700[/thread]

Listbox mit Daten aus anderem Verzeichnis

Leser: 1


<< >> 9 Einträge, 1 Seite
Patrick
 2004-01-14 16:31
#46700 #46700
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Hallo,

wie kann ich eine Listbox mit Dateien aus einem anderen Directory befüllen?

ich bin mit dem Programm im Directory:
/homes/Patrick/Perl/Tk

und die aufzulistenden Daten sind in:
/homes/Patrick/Perl


Hier der aktuelle CODE
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.
.
.
# erstelle eine single selection listbox
$lbs = $fdw->ScrlListbox(-label      => 'Single Selection',
                       -selectmode => 'single',
                       -height     => 5,
                       -exportselection => 0);
$lbs->pack(-pady => '1c', -padx => '0.5c');

# dieser Pfad soll angelaufen werden!
$path = "/homes/Patrick/Perl";

# befülle die Listbox mit Einträgen
foreach $path (<*.pl>)
{
   $lbs->insert("end", $path); # "normal" appending
}
.
.
.
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
Dubu
 2004-01-14 17:14
#46701 #46701
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Code: (dl )
1
2
3
4
foreach $p (<$path/*.pl>)
{
   $lbs->insert("end", $p); # "normal" appending
}

(Beachte die Variablenbenennung: $path vs. $p! )
Patrick
 2004-01-15 08:31
#46702 #46702
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Diese Lösung ist zwar OK, aber ich bekomme den Pfad mitgeliefert.

Gewünschte Listboxanzeige:
Datei1.pl
Datei2.pl

Tatsächlichte Listboxanzeige:
/homes/Patrick/Perl/Datei1.pl
/homes/Patrick/Perl/Datei2.pl  #ich vermute, das die Dateien dabei sind, aber sehen kann ich es nicht, da die Listbox zu schmal ist


Kann ich das vermeiden?


zudem ist die Listbox noch etwas klein. Wie kann ich sie von der Breite verändern?

Danke
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
renee
 2004-01-15 08:59
#46703 #46703
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
chdir($path);
foreach $p (<*.pl>)
{
   $lbs->insert("end", $p); # "normal" appending
}
\n\n

<!--EDIT|renee|1074149956-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Patrick
 2004-01-15 09:09
#46704 #46704
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Der Befehl
Code: (dl )
chdir($path);

wechselt das Verzeichnis, nehme ich mal an.

Hat das im weiteren Verlauf eventuelle Folgen?
Folgen im Sinne von der Funktionalität des Programms und Zugriffe auf Daten im Programmverzeichnis.

Wann kehre ich in das "Startverzeichnis" zurück, muss ich das von Hand tun?
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
ptk
 2004-01-15 11:35
#46705 #46705
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Patrick,15.Jan..2004, 08:09]Der Befehl
Code: (dl )
chdir($path);

wechselt das Verzeichnis, nehme ich mal an.

Hat das im weiteren Verlauf eventuelle Folgen?
Folgen im Sinne von der Funktionalität des Programms und Zugriffe auf Daten im Programmverzeichnis.

Wann kehre ich in das "Startverzeichnis" zurück, muss ich das von Hand tun?[/quote]
Du kannst dir das Verzeichnis merken (use Cwd; $verzeichnis_gemerkt = cwd();) oder du kannst nur die Basenames ausgeben (use File::Basename; @dateien = map { basename $_ } @dateien;). Oder du benutzt opendir/readdir, damit werden auch nur die Basenames ausgegeben.
ptk
 2004-01-15 12:45
#46706 #46706
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Patrick,15.Jan..2004, 07:31]
zudem ist die Listbox noch etwas klein. Wie kann ich sie von der Breite verändern?

Danke[/quote]
Fest mit der Option -width. Dynamisch beim Packen mit
Code: (dl )
->pack(-fill => "both", -expand => 1)
. Manchmal bietet es sich an, optionale Scrollbars einzufuegen:
Code: (dl )
$mw->Scrolled("Listbox", -scrollbars => "osoe", weitere Listbox-Optionen)->pack(...)
Crian
 2004-01-15 13:06
#46707 #46707
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Patrick,15.01.2004, 07:31]Diese Lösung ist zwar OK, aber ich bekomme den Pfad mitgeliefert.

Gewünschte Listboxanzeige:
Datei1.pl
Datei2.pl

Tatsächlichte Listboxanzeige:
/homes/Patrick/Perl/Datei1.pl
/homes/Patrick/Perl/Datei2.pl  #ich vermute, das die Dateien dabei sind, aber sehen kann ich es nicht, da die Listbox zu schmal ist


Kann ich das vermeiden?


zudem ist die Listbox noch etwas klein. Wie kann ich sie von der Breite verändern?

Danke[/quote]
Verwende basename beim Füllen der Dateien in die Listbox. (perldoc File::Basename).

Edit: Breitenänderung der Listbox ist mit dem Parameter -width möglich, ebntweder beim Erstellen der Listbox oder per configure.
Außerdem kann sie durch Größerziehen des Fensters vergrößert werden, falls sie mit -expand => 1, -fill => 'both' gepackt wurde.\n\n

<!--EDIT|Crian|1074164911-->
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
Patrick
 2004-01-15 13:44
#46708 #46708
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Super,

die Lösung von renee hat prima geklappt, Danke!
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
<< >> 9 Einträge, 1 Seite



View all threads created 2004-01-14 16:31.