Leser: 1
![]() |
|< 1 2 >| | ![]() |
19 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if( $datei =~ m/[äöü]+/ ) {
my $d = $mw->DialogBox(-title => "Schlechtes Programm", -buttons => ["OK"]);
my $w = $d->add(
'Label',
-text => "Leider kann dieses Programm noch keine Dateien einlesen,\n"
. "deren Dateiname Umlaute enthält. Das ist ein Problem von\n"
. "Tk und ich habe keine Ahnung, wie man das behebt.\n"
. "Wer das weis möchte sich bitte die Funktion addDatei\n"
. "vorknöpfen, einen Patch schreiben und ihn mir zusenden.\n"
. "Danke.",
-justify => 'left',
)->pack();
my $button = $d->Show;
return;
}
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
use locale; sub file_dialog { my $parent = shift; my @types =( ['All files', '*'], ['CSV files', '.csv'], ['Excel files', '.xls'] ); my $value = $parent->getOpenFile( -filetypes => \@types, -initialdir => '.' ); $value =~ s/\//\\/sgi; utf8::downgrade($value); unless($value eq '') { chdir(&get_path($value)); } return($value); } sub save_file_dialog { my ($parent, $filename) = @_; my @types =( ['Excel files', '.xls'], ['All files', '*.*' ] ); my $value = $parent->getSaveFile( -filetypes => \@types, -initialdir => '.', -initialfile => $filename); $value =~ s/\//\\/sgi; utf8::downgrade($value); return($value); }
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
sub getDatei {
my $heap = shift;
my $mw = shift;
my $datei = $mw->getOpenFile(
-filetypes => $heap->{zulaessigeDateitypen},
-initialdir => $Bin,
-multiple => 0,
);
# Edit2: besser doch kein File::Spec :-/
#$datei = File::Spec->catfile($datei);
utf8::downgrade($datei);
if( $datei ) {
say "Es wurde eine Datei angegeben: [$datei]";
if( -e $datei ) {
say "Die Datei existiert";
}else{
say "die Datei existiert nicht!";
}
}
} # /getDatei
1
2
use Win32; # wird bei ActivestatePerl sowieso geladen
$fileWin = Win32::GetFullPathName( $file );
1
2
use Win32; # wird bei ActivestatePerl sowieso geladen
$fileWin = Win32::GetFullPathName( $file );
QuoteWin32::GetFullPathName() will return a short name, if necessary. Call Win32::GetLongPathName() on the return value (in scalar context) to get the full pathname in Unicode:
![]() |
|< 1 2 >| | ![]() |
19 Einträge, 2 Seiten |