Schrift
[thread]4833[/thread]

Wie lade ich einen PFAD?: Gibt es "getOpenDir"?



<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
Gerry
 2004-08-30 14:47
#42611 #42611
User since
2004-08-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

in diesem Forum gibt es schöne Beispiele dafür, wie man einen Dialog erstellt, um mittels "getOpenFile" eine DATEI zu laden. Ich verwende hierzu den unten angehängten Code um ein PERL-Programm auf der Platte zu lokalisieren und in ein TEXT Fenster zu laden und das klappt auch ganz gut.

Nun möchte ich aber keine DATEI sondern ein VERZEICHNIS lokalisieren und laden. Ich habe deshalb nach "getOpenDir" oder "getOpenDirectory" usw. gesucht, leider ohne Erfolg.

Wer kann mir sagen wie ich am besten ein DIRECTORY indentifizieren und dieses dann in einem TEXT Fenster anzeigen kann? Gibt es vielleicht ein fertiges Beispiel dafür?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# *****************************************************************************
# ** Sub LADE PROGRAMM *******************************************************
# *****************************************************************************
sub Load_Perl_Prog {
my $file_typ = [
['PERL Program', '.pl' ],
['All Files', '*' ],
];
my $dn = $mw->getOpenFile(-filetypes=>$file_typ);
if (defined $dn and $dn ne '') {
$laden_entry->delete(0, 'end');
$laden_entry->insert('end', $dn);
}
}
renee
 2004-08-30 14:51
#42612 #42612
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schau mal in diesen Thread: http://board.perl-community.de/cgi-bin....3;t=156

oder den hier: http://board.perl-community.de/cgi-bin....3;t=152

Da dürfte was für Dich dabei sein...
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/
renee
 2004-08-30 14:56
#42613 #42613
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Crian
 2004-08-30 15:39
#42614 #42614
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Ich habs nicht getestet, aber was passiert, wenn Du bei GetOpenFile als "Endung" den Verzeichnistrenner angibst? (Type)
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
Gerry
 2004-08-30 15:58
#42615 #42615
User since
2004-08-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

danke für die Antworten.

Ich habe mal die verschiedenen Threads "besucht".

Ich denke dass "Tk::DirSelect" nicht in Frage kommt da es doch sehr von den "WINDOWS"-Standards entfernt ist (wenn man bei WINDOWS überhaupt von einem "Standard" reden darf.

"$mw->chooseDirectory" geht bei mir nicht, ich erhalte ebenfalls die entsprechenden Fehlernachrichten, wie sie in den verschiedenen Threads diskutiert wurden.

die Angabe von eines SLASH bzw. Back-Slash in "getOpenFile" hilft nicht weiter, ich MUSS eine Datei auswählen, sonst komme ich nicht aus der Loop raus.

==> FRAGE: was musste ich tun, wenn ich folgendes vorhabe:
1) Benutze "getOpenFile"
2) Selektiere irgendeine File aus der angebotenen Liste
3) Schneide einfach den FILE-namen ab (.. und schon habe ich den Pfad zur Datei).
4) Stelle den Pfadnamen in das entsprechenden TEXT Fenster.

Wie muss ich den zurückkommenden String zerhacken, dass der FILE NAMEN nicht mehr Bestandteil des Strings ist?

Beispiel:
======
C:\TEST\ABC\xxx.pl soll zu C:\TEST\ABC\ werden. Oder ist dieser Ansatz weit ab von einer "klugen" Lösung (sorry, ich bin halt noch ein Neuling auf diesem Gebiet).
renee
 2004-08-30 16:14
#42616 #42616
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dafür gibt es das Modul File::Basename
Code: (dl )
1
2
3
4
use File::Basename;
my $file = '/homes/reneeb/test.txt';
my $dirname = dirname($file);
print $dirname,"\n";


perldoc -m File::Basename\n\n

<!--EDIT|renee|1093868198-->
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/
renee
 2004-08-30 16:15
#42617 #42617
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du den hier schon probiert??
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#! /usr/bin/perl -w

use strict;
use warnings;
use diagnostics;

use Tk;
use Tk::FileSelect;

my $mw = MainWindow->new();
my $fs = $mw->FileSelect(-directory => '.', # Startordner
                       -verify => [-'d']); # nur Ordner dürfen ausgewählt werden
my $selected_dir = $fs->Show();
print $selected_dir,"\n";

MainLoop;
\n\n

<!--EDIT|renee|1093868346-->
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/
Gerry
 2004-08-30 16:45
#42618 #42618
User since
2004-08-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo renee,

danke für den Hinweis auf "Use::Filebasename". Hiermit habe ich zumindest mal eine (wenn auch unschöne) Umgehung meines Problemes. Dieser Code hier liefert nun tatsächlich den PFAD zurück, obwohl ich erst eine DATEI in diesem PFAD auswählen muss:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# *****************************************************************************
# ** Sub LADE PATH ************************************************************
# *****************************************************************************
sub Load_Path {
my $file_typ = [
['PERL Program', '.pl' ],
['All Files', '*' ],
];
my $dn = $mw->getOpenFile(-filetypes=>$file_typ);
my $file = $dn;
my $dn = dirname($file);
print "Pfad ist: $dn";
if (defined $dn and $dn ne '') {
$laden_entry->delete(0, 'end');
$laden_entry->insert('end', $dn);
}
}


PS: Dein Codeschnipsel habe ich auch schon gesehen und er bietet eben auch kein WINDOWS LOOK AND FEEL ... aber es wäre besser als nichts "vernünftiges" zu haben. Sollte ich bei meiner Suche auf einen "echten" DIR OPEN Dialog stoßen, so poste ich das Ding hier rein ....
ptk
 2004-08-30 22:10
#42619 #42619
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Eine weitere Moeglichkeit waere CPAN:Win32::FileOp. Ich hab's noch nie ausprobiert, aber andere Leute scheinen damit sehr zufrieden zu sein.\n\n

<!--EDIT|ptk|1093889458-->
Gerry
 2004-08-30 23:25
#42620 #42620
User since
2004-08-18
26 Artikel
BenutzerIn
[default_avatar]
Hallo ptk,

danke für den Hinweis. Ich hab mal reingeschaut und es sieht doch reichlich kompliziert aus für einen Neuling wie mich :-) ... aber ich versuche mehr herauszufinden.
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2004-08-30 14:47.