TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

От автора

 

Q:> 2.4.8 Как осуществить поиск файла по всем директориям?

A:> Hеобходимо воспользоваться процедурами FindFirst/FindNext и рекурсией. Hапример:
Вот пример самой простенькой програмки. Алгоритм тут весьма прозрачен, так что без комментариев.
uses Dos;
{
Эта программа ищет все файлы по маске turbo.* в поддиректориях
папки C:\ и выводит на экран их полные имена =)
Основа программы - функция SearchDir её параметры -
fn - маска, Dir -начальная директория.
}
procedure SearchDir(fn, Dir:string);
var
SRec: SearchRec;
ckl:integer;
F:file;
regs:registers;
begin
if dir[length(dir)]<>'\' then Dir:=Dir+'\';

FindFirst(Dir+fn, AnyFile, SRec);
while DosError = 0 do begin
WriteLN(Dir+SRec.Name);
FindNext(SRec);
End;
FindFirst(Dir+'*.*', Directory, SRec);
while DosError = 0 do begin
with SRec do
if (Attr and 16 <> 0 ) and (Name[1]<>'.') then
SearchDir(fn,Dir+Name);
FindNext(SRec);
end;

end;

Begin {program}
SearchDir('turbo.*', 'C:\');
End. {program}

На первую страницу
Rambler's Top100 Яндекс цитирования Rambler's Top100 PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

Hosted by uCoz