Вниз
Скачать: CL | DM;

Поиск фаила в каталоге и его подкаталогах   Найти похожие ветки 

← →
кактусбел ©   (2004-12-03 20:10) [0]

Уважаемый мастера вопрос по сабжу
как провести поиск фаилов определенного типа(типа *.exe) в каталоге и во всех его подкаталогах
у меня есть алгоритм основанный на рекурсии но он глючит

Заранее спасибо.


← →
grigory ©   (2004-12-03 21:03) [1]

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear; // очистка списка файлов
FindFile(Edit1.Text); // поиск файлов с начальными условиями, заданных в Edit1
end;

Созданная вручную процедура поиска:

procedure TForm1.FindFile(Dir:String);
Var SR:TSearchRec;
   FindRes:Integer;
begin
FindRes:=FindFirst(Dir+"*.*",faAnyFile,SR);
While FindRes=0 do
  begin
     if ((SR.Attr and faDirectory)=faDirectory) and
     ((SR.Name=".")or(SR.Name="..")) then
        begin
           FindRes:=FindNext(SR);
           Continue;
        end;

     if ((SR.Attr and faDirectory)=faDirectory) then // если найден каталог, то
        begin
           FindFile(Dir+SR.Name+"\"); // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли
           FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
           Continue; // продолжить цикл
        end;

     ListBox1.Items.Add(SR.Name);
     FindRes:=FindNext(SR);
  end;
FindClose(SR);
end;


← →
grigory ©   (2004-12-03 21:04) [2]

а в маску поиска вместо *.* напишешь *.exe
ну и путь свой указываешь, где искать хочешь!


← →
novice__man   (2004-12-03 21:12) [3]

кактусбел ©   (03.12.04 20:10)  

Уважаемый мастера вопрос по сабжу
как провести поиск фаилов определенного типа(типа *.exe) в каталоге и во всех его подкаталогах
у меня есть алгоритм основанный на рекурсии но он глючит


Новое слово в программировании ГЛЮЧНЫЙ АЛГОРИТМ!!!!!!

FindFirst & FindNext F1 !!!


← →
Fay ©   (2004-12-03 21:35) [4]

2 grigory ©   (03.12.04 21:03) [1]
>> ((SR.Name=".")or(SR.Name=".."))
А так не проще?
SR.Name[1] = "."


← →
grigory ©   (2004-12-03 21:42) [5]

:)) проще, но это как говорится дело техники, а суть вроде такая. я просто дал код куска проги:)))


← →
Игорь Шевченко ©   (2004-12-03 21:55) [6]

Fay ©   (03.12.04 21:35) [4]

Не проще, а в ошибочно


← →
Anatoly Podgoretsky ©   (2004-12-03 22:02) [7]

Fay ©   (03.12.04 21:35) [4]
Проще, но толку то?


← →
Jel ©   (2004-12-03 23:53) [8]


> Не проще, а в ошибочно

А, собственно почему ошибочно? Всегда использую и пока не нарвался на грабли. В чем они?


← →
Игорь Шевченко ©   (2004-12-03 23:57) [9]


> А, собственно почему ошибочно?


А потому, что создавать каталог, начинающийся с точки никому не запрещено.


← →
Jel ©   (2004-12-04 00:02) [10]


> создавать каталог, начинающийся с точки никому не
> запрещено.

Спасибо. Считал, что этого не даст сделать система. Кстати, проверил - Explorer ругает за некорректное имя, а вот из FAR создался запросто.


← →
Fay ©   (2004-12-04 02:17) [11]

Прикольно. Я Проводником проверял - думал, что это хорошая проверка 8).
Спасибочки.


← →
кактусбел ©   (2004-12-05 14:57) [12]

Большое вам всем спасибо !!!
удачи.


← →
Anatoly Podgoretsky ©   (2004-12-05 15:14) [13]

Сумасшедший программист ©   (05.12.04 14:57) [8]
И файлы тоже, например характерный файл .forward


← →
Jel ©   (2004-12-05 20:22) [14]


> Anatoly Podgoretsky ©   (05.12.04 15:14) [13]

Спасибо за новый ник. :) Файл, однако не будет иметь атрибута faDirectory.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
14-1104441096
ArMellon
2004-12-31 00:11
2005.01.23
Если человек выпивает больше четырех раз в год - он хронический


1-1105269948
glGLU
2005-01-09 14:25
2005.01.23
Как поделить float


14-1104225348
Один из местных
2004-12-28 12:15
2005.01.23
Больно, но не смертельно,


14-1104864578
AlterEgo of WondeRu
2005-01-04 21:49
2005.01.23
скажите мне чего-нибудь приятное, а то...


1-1104907565
WhiteGuy
2005-01-05 09:46
2005.01.23
Приоритет




   Наверх