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