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

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

← →
Phoenix9000 ©   (2005-03-01 17:36) [0]

Доброго времени суток.

Вопрос : Как осуществить поиск по подкаталогам и файлам, типа того, как делается в Windows?? Каталог стационарный, критерии поиска вводятся в поле edit.

Требуется пример кода.

Заранее спасибо всем кто откликнется.


← →
Nes ©   (2005-03-01 17:41) [1]

Всмысле?Нужно, чтобы в определённом каталоге определённый файл рыскал?


← →
MBo ©   (2005-03-01 17:45) [2]

FindFirst/FindNext


← →
ANB ©   (2005-03-01 17:45) [3]

procedure FindRecurseTempFolder(sPath : String;
         var sFolderList : String; var iErr : Integer);
var SearchRec: TSearchRec;
   FileAttrs, rc : Integer;
   sName, sFullName : String;
begin
{Рекурсивный поиск списка папок}
Application.ProcessMessages;
if (fmLog.bStop) then Exit;

FileAttrs := 1 + faDirectory
+faHidden+faArchive+faAnyFile;

rc:= SysUtils.FindFirst(sPath+"*.*", FileAttrs, SearchRec);
if (rc = 0) then begin
 repeat
  Application.ProcessMessages;
  if (fmLog.bStop) then Break;
  sName := SearchRec.Name;
  if (((SearchRec.Attr and faDirectory) <> 0) and (sName <> ".") and (sName <> ".."))
  then begin
   sFullName := sPath + sName + "\";
   fmLog.SetCurrent(sFullName);
   // Проверим, не входит ли данная папка в поисковый список
   if (Pos("|"+UpperCase(Trim(sName))+"|", sFolderList) > 0)
   then begin
    // Если да - ругаемся в лог
    fmLog.AddErr("Временная папка "+sName+" обнаружена на пути "+sPath);
    Inc(iErr);
   end;
   // Вызовем сами себя рекурсивно
   FindRecurseTempFolder(sFullName, sFolderList, iErr);
  end;
  Application.ProcessMessages;
  if (fmLog.bStop) then Break;
 until FindNext(SearchRec) <> 0;
 FindClose(SearchRec);
end;
end;

Лишнее сам выкинешь. Вместо *.* свою маску поставишь.
Этот пример ищет только папки. Все, что с fmLog - можешь выбросить, это моя форма лога.


← →
Cosinus ©   (2005-03-01 17:46) [4]

http://narod.yandex.ru/cgi-bin/yandmarkup?cluster=14&prog=0x2757571A&HndlQuery=1014696432&PageNum=1&g=12&d=0&q0=13849706 40&p=1


← →
ANB ©   (2005-03-01 17:47) [5]

Для поиска всего остального подкорректируй if (((SearchRec.Attr and faDirectory) <> 0)


← →
Phoenix9000 ©   (2005-03-01 18:04) [6]

Всем большое спасибо.

Уточню. Пользователь вводит в поле edit текст , например "ива", а программа должна найти и выдать в какой нить компонент (ShellListView) список файлов и подкаталогов в названии которых присутствует "ива" (т.е. как делает Windows). Далее при двойном клике на файле из списка он должен запуститься.


← →
Fay ©   (2005-03-01 18:09) [7]

2 Phoenix9000 ©   (01.03.05 18:04) [6]
>> Уточню. ....
Это продолжение вопроса, или крутая реклама?


← →
Phoenix9000 ©   (2005-03-01 18:13) [8]

Ну Считай продолжением вопроса. Я посмотрел ответы, ну и уточнил.


← →
Fay ©   (2005-03-01 18:28) [9]

2 Phoenix9000 ©   (01.03.05 18:13) [8]
А где предполагалось поставить вопросительный знак ?


← →
Phoenix9000 ©   (2005-03-01 18:31) [10]

2 Fay
В уточнении знаки вопроса не ставятся. :)


← →
Anatoly Podgoretsky ©   (2005-03-01 19:54) [11]

И что тебе препятсвует?


← →
nes ©   (2005-03-01 21:39) [12]

Грр...если файл найден,то получаешь  dir папки  и задаёшь root в ShellListView



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

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



Память: 0.48 MB
Время: 0.029 c
3-1108016064
Киря
2005-02-10 09:14
2005.03.13
Как передать данный из DLL в exe?


3-1108199545
Bogdan
2005-02-12 12:12
2005.03.13
Ошибка при запросе


6-1105337093
!Cyber
2005-01-10 09:04
2005.03.13
Примеры работы с Leadtools


1-1109574679
mmms
2005-02-28 10:11
2005.03.13
Как бы зациклить "Tab" на одной панели, не переходить на другие


1-1109370176
Packman
2005-02-26 01:22
2005.03.13
Работа с компонентом.




   Наверх