» Poradna » Ostatní

Delphi - rekurz. načítání souborů

 |   |  Microsoft Windows 7 Firefox 50.0

dobrý denmám proceduru na rekurzivní načítání souborů, načítám všechny soubory podle masky *.*, ale potřebovala bych z načítání vyloučit např. soubor typu .rar, zkoušela jsem to příkazem Continue, ale nefunguje mi to... poraďte mi prosím kde dělám chybuprocedure Najdi(mask:string);var search:TSearchRec; verz:string; such:string;begin such:=ExtractFileName(mask); verz:=ExtractFilePath(mask); if verz[length(verz)]<>'\' then verz:=verz+'\'; if FindFirst(mask,$23,search)=0 then begin repeat form1.ListBox1.Items.Add(verz+search.Name); Application.ProcessMessages; until FindNext(search)<>0; end; if FindFirst(verz+'*.*',fadirectory,search)=0 then begin repeat if (search.name='*.rar') then Continue; if ((search.Attr and fadirectory)=fadirectory) and (search.name[1]<>'.') then begin Najdi(verz+search.name+'\'+such); end; until FindNext(search) <>0; FindClose(search); end;end;

Mohlo by vás také zajímat

Odpovědi na otázku

avatar
 | Microsoft Windows 7 Firefox 50.0

Nevím jestli bude fungovat "if (search.name='*.rar')" - to *.rar funguje v DOSu, ale v pascalu?1. Porovnej poslední 4 znaky search.name s '.rar' a '.rnn' (nn=01-99 pro vícesvazkový archív). 2. Otoč podmínku <> místo =, blok zpracování proveď jen pro ne-rar soubory.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Sice je to hrozně nepřehledné jak je to zobrazené bez odsazování, ale problém máš v uvažování. Jak na to koukám tak ten kód nejprve všechny soubory zapíše do listboxu, pak teprve když narazí na rar, tak se přes continue zastaví. A když je to složka tak pokračuje rekurzivně.Problém je v tom že na začátku VŠE zapíše do listboxu, ano opravdu vše, včetně těch rarů apod. a až potom to nějak filtruje. Selský rozum říká že když to napíšeš opačně. Tj nejdřív filtruj a když to bude rar tak nic dál nedělat (continue) a když to bude cokoliv jiného tak to zapsat do listboxu a pak pokračovat na prohledávání podadresářů.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 50.0

děkuji moc, zkoušla jsem to a pořád mi to nejde, vyzkoušela jsem všechny možné umístění, v něktzerých mi to vypisuje pouze složky bez souborů, ale jinak mi pořád vyhledávají všechny soubory

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux AppleMAC-Safari 5.0

fujtyfuj...procedura Najdi plní rovnou listbox

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Search, Then, String, Continue