Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
6-1105344825
ctranik
2005-01-10 11:13
2005.03.13
Вопрос по TIdHttp


3-1108327778
Коля
2005-02-13 23:49
2005.03.13
Как узнать индекс поля где находится указатель в Query?


9-1102781087
Макс
2004-12-11 19:04
2005.03.13
Как обновить glscene.


1-1109500735
Kwt
2005-02-27 13:38
2005.03.13
Прозрачный Bitmap и Image


1-1109236934
X9
2005-02-24 12:22
2005.03.13
Трабла со сворачиванием





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский