Výpis adreseře na win32 v DOS konvenci

Lukas Svoboda xsvobod4 na aurora.fi.muni.cz
Čtvrtek Srpen 14 11:06:50 MEST 2003


> > potřeboval bych na win32 (ActiveState) vypsat obsah adresáře ovšem v tom
> > klasickém DOS formátu - včetně zkrácených jmen. Čili takové to
> > "hokus~1.txt". Bohužel se mi pořád nedaří nalézt nějakou jednodušší cestu
> > než to přežvýkávat z výpisu `dir` příkazu.
> 
> Dobry den, muzete pouzit funkce opendir a readdir, ale ta jmena je asi
> potreba upravit rucne. Uvedeny priklad mi funguje, primo ta jmena
> vypisuju na konci toho cyklu.
> F. Darena
> 
> 
> my %files = ();
> 
> opendir D, "$jmeno_adresare";
> while ($_ = readdir D) {
> 	my $pripona;
> 	my $jmeno;
> 
> 	$pripona = $& if /\.[^.]+$/;;
> 
> 	$pripona?$jmeno = $`:$jmeno = $_;
> 
> 	if (length $jmeno > 8) {
> 		/.{6}/;
> 		print $&.'~'.++$files{$&}.($pripona?$pripona:'');
> 	} else {
> 		print;
> 	}
> }


Nevim nic o vypisech adresaru v DOSu, ale uvedeny priklad bych zapsal:

opendir D, $adr || die "chyba";
@dir = map { s/([^\.]{6}).+(\..{0,3})/$1 . (++$f{$1}) . $2/e; $_} readdir D;
closedir D || die "chyba";

Mozna by 1,3 radek sel vynechat a misto readdir pouzit fci. glob...


Další informace o konferenci Perl