Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2009, 22:46   #1
Romms
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 21
По умолчанию Поиск файлов

Здраствуйте! По сути задача не сложная(поиск файлов в деректории и вложених папках) НО! Проблема в скорости! Вот мой пример:

Код:
procedure Tmain.FILEfind(cat:string; type_f:string);
var sea:TSearchRec;
res:integer;
begin
res:=FindFirst(cat+'\*.*',faAnyFile,sea);
res:=findNext(sea);
While res=0 do
begin
if (Sea.Attr=faDirectory) and ((Sea.Name='.')or(Sea.Name='..')) then
begin
Res:=FindNext(sea);
Continue;
end;

if (Sea.Attr=faDirectory) then
begin
FILEfind(cat+Sea.Name+'\',type_f);
Res:=FindNext(Sea);
Continue;
end;
 main.ListBox2.Items.Add(cat+'\'+Sea.Name);
 Res:=FindNext(Sea);
end;
FindClose(Sea);
end;
Помогите модернизировать?!

Последний раз редактировалось Romms; 26.09.2009 в 23:28.
Romms вне форума Ответить с цитированием
Старый 26.09.2009, 23:18   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

1. Не Sea.Attr = faDirecory, а (Sea.Attr and faDirectory)<>0
2. Конкретно такой способ уже особо не оптимизировать, быстрые поисковики работают с помощью индексации файлов
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 26.09.2009, 23:32   #3
Romms
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 21
По умолчанию

Возможно Вы знаете другой(более быстрый) способ, пажалуста, линк в студию!
Romms вне форума Ответить с цитированием
Старый 27.09.2009, 00:40   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Я ж Вам сказал: индексация файлов. Т.е. при первом запуске программы все файлы организуются в такую структуру, поиск в которой происходит достаточно быстро.
Ну вот, например, погуглил (кстати, тоже индексация): http://www.codenet.ru/webmast/search/idx/ и http://cit.vvsu.ru/portal/cifr/1/lek08.htm
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Поиск файлов profi Помощь студентам 2 16.06.2009 16:04
Поиск файлов student_63 Общие вопросы Delphi 6 07.03.2008 19:00
Поиск файлов LeoN Общие вопросы Delphi 5 25.11.2007 22:54
Поиск файлов necky Общие вопросы Delphi 10 31.08.2007 00:27