Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Быстрый поиск файлов

4.4K
26 февраля 2004 года
Vitalios
13 / / 08.01.2004
Пробовал искать файлы текущего каталога функциями
FindFirst,FindNext и FindClose.Поиск в каталогах с большим количеством файлов (типа Windows\System32)осуществляется около 15 секунд.
Подскажите пожалуйста, если есть, другой более быстрый способ.Спасибо.
6.5K
02 марта 2004 года
Maniac
2 / / 06.01.2004
Цитата:
Originally posted by Vitalios
Пробовал искать файлы текущего каталога функциями
FindFirst,FindNext и FindClose.Поиск в каталогах с большим количеством файлов (типа Windows\System32)осуществляется около 15 секунд.
Подскажите пожалуйста, если есть, другой более быстрый способ.Спасибо.


~~~~~~~
У меня никогда небыло проблем с быстродействием на этих функциях! Выложи исходный текст своих поисков

4.4K
03 марта 2004 года
Vitalios
13 / / 08.01.2004
Цитата:
Originally posted by Maniac

~~~~~~~
У меня никогда небыло проблем с быстродействием на этих функциях! Выложи исходный текст своих поисков



-----------
Код следующий:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TSearchRec sr;
int i=0;

SetCurrentDir("c:\\Windows\\system32");
if (! FindFirst("*.*",faAnyFile | faDirectory,sr))
{
ListView1->Items->Add();
ListView1->Items->Item->Caption = sr.Name ;
while (! FindNext(sr))
{
i++;
ListView1->Items->Add();
ListView1->Items->Item->Caption = sr.Name ;
}
};
FindClose(sr);
}

В таком варианте задержка около 6 секунд. А ведь существуют программы, мгновенно отображающие имя, дату, иконку и др. инфу о файле.

401
03 марта 2004 года
Br@in RIPper
289 / / 15.02.2003
Цитата:
Originally posted by Vitalios


-----------
Код следующий:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TSearchRec sr;
int i=0;

SetCurrentDir("c:\\Windows\\system32");
if (! FindFirst("*.*",faAnyFile | faDirectory,sr))
{
ListView1->Items->Add();
ListView1->Items->Item->Caption = sr.Name ;
while (! FindNext(sr))
{
i++;
ListView1->Items->Add();
ListView1->Items->Item->Caption = sr.Name ;
}
};
FindClose(sr);
}

В таком варианте задержка около 6 секунд. А ведь существуют программы, мгновенно отображающие имя, дату, иконку и др. инфу о файле.



как мне кажется львиную долю времени занимает
ListView1->Items->Add();
ListView1->Items->Item->Caption = sr.Name;

не знаю, как это сделать в билдере, но на WinAPI, для ListBox'a можно заранее выделить память для большого количества элементов (LB_INITSTORAGE). я думаю это значительно ускорит процесс

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог