Тема: Поисковик
Показать сообщение отдельно
  #1  
Старый 31.07.2008, 21:02
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию Поисковик

Помогите исправить поисковик файлов по расширеню
В общем использую следующий алгоритм для поиска
Код:
procedure TdlgSearchResults.SearchDir(Dir,Ext: string);
var
  SR: TSearchRec;
  FindRes: Integer;
  Item:TListItem;
begin
  FindRes := FindFirst(Dir + Ext, 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 
                SearchDir(Dir + SR.Name + '\',Ext);
                FindRes := FindNext(SR); 
                Continue; 
              end;
            //Files.Add(Dir + SR.Name);//Add to list
            Item:=lvFiles.Items.Add;
            Item.Caption:=SR.Name;
            Item.SubItems.Add(IntToStr(SR.Size));
            Item.SubItems.Add(Dir);
            //showmessage(dir+sr.Name);
            FindRes := FindNext(SR);
          end;
  FindClose(FindRes);
end;
При поиске файлов по маске *.* находит все, при поиске к примеру *.exe находит первый файл и прекращает искать.
При поиске к примеру *p* работает отлично, то же самое и при поиске без точки *exe*.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием