Procházení adresářu a výpis – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Procházení adresářu a výpis – Pascal – Fórum – Programujte.comProcházení adresářu a výpis – Pascal – Fórum – Programujte.com

 

DracoAn
~ Anonymní uživatel
2 příspěvky
10. 3. 2010   #1
-
0
-

Dobrý den, potřeboval bych poradit. Potřebuji nutně vytvořit program, který bude sám procházet adresáře a vypisovat soubory např typu .jpg. Adresáře můžou obsahovat i podadresáře. Názvy adresářů mohou být libovolné. Děkuji za každou radu nebo pomoc.

Nahlásit jako SPAM
IP: 213.250.255.–
Mircosoft+1
Věrný člen
11. 3. 2010   #2
-
0
-

Tohle umí procedury Findfirst a Findnext z jednotky Dos, podrobnosti najdeš v helpu (z hlavy si je nepamatuju).
Adresář od souboru rozeznáš podle atributu Directory.

Zmíněné procedury procházejí pouze jeden adresář. Když chceš do podadresářů, musíš to celé vhodně zabalit do rekurze.

Pro inspiraci: http://mircosoft.ic.cz/download/DISK.PAS

Nahlásit jako SPAM
IP: 130.119.248.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
DracoAn
~ Anonymní uživatel
2 příspěvky
11. 3. 2010   #3
-
0
-

Po prohlidnuti kodu stejne nejsem moc chytrej. Ja bych mnel urcite reseni, ale potreboval bych vyresit tohle: Nacteni podadresaru. Vstoupeni do prvniho a vystoupeni s prvniho. To ostatni bych uz domyslel.

Nahlásit jako SPAM
IP: 213.250.255.–
Mircosoft+1
Věrný člen
14. 3. 2010   #4
-
0
-

Potřebuješ proceduru, která by uměla tohle:

1) Projde aktuální adresář a zpracuje soubory, které v něm najde (Findfirst+Findnext, atribut Anyfile-Directory).
2) Projde aktuální adresář a zapamatuje si všechny podadresáře, které v něm najde (Findfirst+Findnext, atribut Directory).
3) Zavolá sama sebe na každý ze zapamatovaných podadresářů.

Na to, jak proceduře předat informaci o tom, který adresář má procházet, mě napadají dva způsoby: buď se předá kompletní cesta přes parametr a pak se předhodí Findfirstu, nebo se před voláním procedury do příslušného adresáře přepneme (Chdir) a pak procházíme vždycky aktuální adresář. První způsob je "čistší", jednodušší a bezpečnější (nehrozí, že po skončení procedury zůstaneme omylem zahrabaní někde v podadresářích), u druhého zase nehrozí potíže při hodně hlubokém vnoření (kdy by cesta přesáhla maximální povolenou délku).

Zapamatování seznamu podadresářů je nutné. Na první pohled to sice vypadá, že by se daly procházet hned, jak je najdeme, ale má to háček: Findnext je jenom jeden a rekurzi by nepřežil.

Nahlásit jako SPAM
IP: 93.91.144.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
marlog
~ Anonymní uživatel
11 příspěvků
20. 3. 2010   #5
-
0
-

sice to nepatri k tomuto problemu, ale chtel jsme se zeptat, zda procedura chdir potrebuje nejake specialni prava, nebo tak neco, pro zmenu adresare. Protoze mi prestal doslova ze dne na den fungovat, ted mi kvuli tomu pada cely program.
diky za odpoved

Nahlásit jako SPAM
IP: 212.111.4.–
marlog
~ Anonymní uživatel
11 příspěvků
20. 3. 2010   #6
-
0
-

dobre, tak problem jsem vyresil, do chdir se asi nemuze zadat posledni lomitko cesty.
ale i takj je to divne, ze pred tim to chodil vporadk ua ted zniceho nic uz ne.

Nahlásit jako SPAM
IP: 212.111.4.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý