Приведен пример поиска файлов по маске по всему диску.
{> Cut here. FileName= SEARCHF.MSG }
- FAQ ---------------------------------------- ЧАВО - Частые Вопросы и Ответы -
Msg : 2 of 51 Addr Date
From : Victor Shantar 2:5054/26 06.12.97
Subj : Как найти файлы на диске
-------------------------------------------------------------------------------
> Hello...
Однажды 05 Dec 97 07:15, Andrew Zamotaylov писал к All, а я вмешался:
AZ> Каким обpазом pеалаизуется поиск по шаблону, наапpимеp, на всём винте?
AZ> Слышал, делается pекуpентно, но облом писать самому, велосипед
^^^^^^^^^^ - рекурсивно
AZ> изобpетать. Может кто закинет сыpсовик?
Hу все... Это крайний раз. В следующий буду просто тихо материться.
За месяц уже 5 раз одно и тоже... :(
> Пока...
ћ Hе удивляйтесь, что когда вы поднимите камень, дабы бросить его в человека
основательно насолившего вам, у вас отберут ваше оружие и предложат встать
в очередь из людей желающих сделать тоже самое. :)
--- [Hedgehog House] Phone: +7-3422-622044 Work Time: 00:00 - 07:30 Local
* Origin: Это не GoldEd. Это примочка к Д00Му для написания писем. (2:5054/26)
{> Cut here. FileName= SEARCHF.PAS }
{
From : Victor Shantar 2:5054/26 06.12.97
Subj : Как найти файлы на диске
}
Uses DOS;
Procedure PrintFiles(path,mask:string);
var sr:searchrec;
begin
findfirst(path+mask,anyfile-directory,sr);
while doserror=0 do begin
writeln(path+sr.name);
findnext(sr);
end;
end;
Procedure SearchFiles(path,mask:string);
var sr:searchrec;
begin
PrintFiles(path,mask);
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;
begin
SearchFiles('C:\','*.PAS');
{ WriteFiles('D:\GAMES\','d??.?e?');
writeFiles('e:\','*.*');}
end.