Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Рекурсивный поиск [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо