Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Find files [D6, WinME]


Sterh ©   (2003-01-22 18:30:00) 

Люди помогите надо организовать оч быстрый поиск файлов.. Например так запускается поток ищет в начальной дире находит вложенные диры запукает 3 нити они шарят во вложенных папках, он смотрит в этой затем переходит во вложенную итд ....


Anatoly Podgoretsky   (2003-01-22 19:47:00) [1]

Не в FAT, а по оглавлению, которое разбросано по всему диску, частный случай когда в начале.


Palladin   (2003-01-22 19:21:00) [2]

Да. Действительно.
Тебе дело говорят.
Самое простое рекурсией пройтись по порядку.
Поиск файлов не по винту идет, а в FAT которая в начале диска. Смысла в много поточности большого не вижу.


Anatoly Podgoretsky   (2003-01-22 19:15:00) [3]

Sterh © (22.01.03 18:30)
Твой путь приведет к серьезнрому замедлению, не надо искать паралельно, механика это очень медленная штука.


Palladin   (2003-01-22 19:07:00) [4]

напиши простой (в смысле не потоковый) метод поиска файлов (процедуру) на входе которого будет путь поиска и условие поиска (маска тобишь)
и пусть этот метод будет рекурсивным.

а после того как все это отработано будет...
заверни в обложку потоков. где вместо рекурсии ессно будет создание однотипного потока с новой директорией.

вопрос по поводу сохранения результата можно решить след. способом

var
FilesCS:TCriticalSection;
Files:TStringList;

procedure AddFile(p_strFullFileName:string);
begin
FilesCS.Enter;
Files.Add(p_strFullFileName);
FilesCS.Leave;
end;

насколько это будет быстро сказать не могу.
если надо уж оченьбыстро, то вопрос к знатокам асма.


Наверх

Титульная страница Поиск, карта сайта Написать письмо