Re: Výpis adreseře na win32 v DOS konvenci
Martin Sittek
mailing-list na infoprojekt.cz
Čtvrtek Srpen 14 13:50:27 MEST 2003
Kruciš, to je přesně co jsem hledal. Já to hledal pod Win32::File a podobně
ale hledat to přímo v tom Win32 mě nenapadlo.
Díky moc.
Martin Sittek
----- Původní zpráva -----
Od: "Frantisek Darena" <darena na akela.mendelu.cz>
Komu: "Multiple recipients of list PERL" <perl na muni.cz>
Odesláno: 14. srpna 2003 13:25
Předmět: Re: Výpis adreseře na win32 v DOS konvenci
>
> takze asi nejvhodnejsi teda bude pouzit funkci
> Win32::GetShortPathName(PATHNAME), ktere se zada jmeno souboru a ona vrati
> jeho kratke jmeno.
> F. Darena
>
> On Thu, 14 Aug 2003, Martin Sittek wrote:
>
> > Dík za názor, také jsem původně uvažoval že si ty názvy nějak podobně
> > odvodím ale jen do doby než jsme zjistil, že může existovat soubor~2
aniž by
> > existovat soubor~1. Konkrétně když si vytvořím třeba adresář
"hokuspokus" a
> > kouknu na `dir`, pak vidím "HOKUSP~1", pak jej přejmenuji třeba na
> > "hokuspokusx" a zase kouknu na `dir` a vidím "HOKUSP~2" aniž by
existoval
> > "HOKUSP~1". Pak Váš program nebude fungovat správně.
> >
> > Martin Sittek
> >
> > ----- Původní zpráva -----
> > Od: "Frantisek Darena" <darena na akela.mendelu.cz>
> > Komu: "Multiple recipients of list PERL" <perl na muni.cz>
> > Odesláno: 14. srpna 2003 10:47
> > Předmět: Re: Výpis adreseře na win32 v DOS konvenci
> >
> >
> > >
> > >
> > > On Tue, 12 Aug 2003, Martin Sittek wrote:
> > >
> > > > Zdravím vespolek,
> > > >
> > > > 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;
> > > }
> > > }
> >
> >
>
Další informace o konferenci Perl