![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Всем привет! С прошедшим всех!
Как нужно быть в такой ситуации. Есть заданный путь для поиска. например (C:\) Поиск включает в себя поддиректории, и маска может быть любой. (*.mp3 или *.*) Как создать прогрэс бар? Сначало произвести поиск всех файлов и потом, те файлы которые не входят в маску исключить и получившее значение будет Max для прогрэса как? |
|||
|
||||
Fhusy |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.11.2006 Репутация: нет Всего: нет |
а зачем тебе прогресс бар? и что он будет отображать?
|
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
начинаю поиск файлов с определённого места например с ('C:\*.*'), включая поддиректории
Прогрэс должен показывать сколько осталось до окончания поиска |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
А как ты определишь конкретное значение до окончания поиска? Тебе остаётся только лишь имитировать прогрессбар, показывая пользщователю, что программа не висит, а работает. -------------------- |
|||
|
||||
Antony41 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
решил проблему
Это сообщение отредактировал(а) Antony41 - 10.5.2009, 16:42 |
||||
|
|||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Э-э... А где тут прогрессбар?
-------------------- |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Точное время для этого действия оценить нельзя. Для показа работы, не имеющей конкретной продолжительности используют "бесконечный" ProgressBar, отображающий циклическое пробегание полоски слева направо. Обычно сверху полоски пишут, какое действие/файл находится на данный момент в обработке. В приведенном тобой коде, как я понял, работа по поиску файлов будет выполняться дважды. Первый раз - для получения max значения, а второй уже для визуального поиска. Нерационально. |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
Antony41,
т.е. ты отдаешь себе отчет, что ты только что два раза сделал поиск, сначала чтобы узнать кол-во файлов, а потом сделал такой же поиск, что бы понтово показать поиск с прогрессбаром? |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
небольшим утешением может быть только то, что второй "проход" будет значительно быстрее за счет кэша. а в общем - конечно же, никто в таких случаях "точный" прогресс не показывает.
|
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Это вряд ли-) Я имею ввиду слово "значительно" -------------------- |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
полагаю, что порядок - это значительно.
![]() иногда приходится искать "иголку" по всем дискам - момент кэширования заметен сразу. Добавлено через 38 секунд edit: момент = эффект |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
dumb,
Согласен. В таком случае прогрессбар при повторном поиске вообще не имеет смысла. У меня на 200 тысячах файлов повторный проход занимает 6 секунд. -------------------- |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Данная операция не подвергается прогнозу, если только файлы не проиндексированы.
Возможно в Windows 7 или далее будет доступ к файловой базе через SQL запросы. А пока файловая система - это непрогнозируемый киш-миш. Так что бери пример с микрософта и показывай анимированную собачку, вынюхивающую файлы. |
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: 1 Всего: 1 |
Как же не используется ни где, могу привести, как пример, программы: Clone Remover, Alike File Finder, и др.
Первый поиск передаёт результат в StringList, что выполняет его за 2-3 сек. А у второго совсем другая система. и результат он возвращает в listView. Но я с вами согласен лучше использовать полоску. Что то не догадался сразу Это сообщение отредактировал(а) Antony41 - 28.6.2009, 23:44 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |