![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рекурсивный поиск [D5, D6, D7, Win2k, WinXP]
dizrov © (2004-08-06 12:43:00)Добрый день, ув. мастера!
Подскажите, пожалуйста, как сделать рекурсивный поиск в каталоге.
Если не трудно - киньте исходник.
Заранее спасибо.
Mim1 (2004-08-06 22:47:00) [1]Для кучи
program test;
{$APPTYPE CONSOLE}
uses sysutils, Masks;
procedure Q(startdir:string; mask:string);
var
SearchRec : TSearchRec;
begin
if FindFirst(StartDir+'\*.*', faAnyFile, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory) = faDirectory then
begin
if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
q(startdir+'\'+SearchRec.Name,mask);
end
else
if MatchesMask(SearchRec.Name,mask) then
writeln(StartDir +'\'+ SearchRec.Name);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
begin
q('d:\mp3','*.mp3');
end.
syte_ser78 (2004-08-06 12:50:00) [2]Исходник на FP
Procedure SearchFiles(path,mask:string);
var sr:searchrec;
begin
findfirst(path+'*.*',anyfile,sr);
while doserror=0 do begin
if (sr.attr and directory=directory) and
(sr.name<>'.') and (sr.name<>'..') then
SearchFiles(path+sr.name+'\',mask);
findnext(sr);
end;
end;
dizrov (2004-08-06 12:48:00) [3]begin...end, спасибо огромное!
begin...end (2004-08-06 12:46:00) [4]http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1015254946&n=19