|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.02.2013, 17:23 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Поиск объекта по параметрам в списке.
Доброго времени суток!
Есть список объектов. В этом списке объектов я реализую такое: Код:
Вопрос: Как искать, если параметры могут быть заданы не все а могут быть и все? Подскажите методику организации поиска по большому кол-ву параметров. пожалуйста. Problem resolved! Код:
Последний раз редактировалось Человек_Борща; 03.02.2013 в 17:47. |
03.02.2013, 19:39 | #2 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
это копец... время выполнения ужос... LoCase/проверка на каждой итерации...
if aFindData.FindCount > 0 then vCallback(Self, Data); совпадение одного атрибута приведет к вызову калбека, а должно всех кроме того после первого совпадения салбек сработает для остальных т.к. нет очистки aFindData.FindCount := 0;
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 03.02.2013 в 20:16. |
03.02.2013, 19:46 | #3 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Цитата:
|
||
03.02.2013, 20:12 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Параметры по которым искать можно через множество задать
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
03.02.2013, 20:16 | #5 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
мой вариант
Код:
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 03.02.2013 в 20:26. |
03.02.2013, 20:55 | #6 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Код:
Slym, не понятно зачем, вся эта пивоварня с массивом? Считчиком найденного является aFindData.FindCount, который я обнуляю в начале цикла, чтобы следующий элемент ненароком не попал в список найденного. Аватар, немного не понял вас. Все параметры определяет пользователь. Если параметр не задан, то он равен пустой строке. |
|
03.02.2013, 21:08 | #7 | |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
Цитата:
(в вашем с любым не нулевым критерием) массив первую очередь избавляет от постоянной проверки критерия if (aFindData.Критерий <> EmptyStr) then компромис экономии ЦПУ в сторону увеличения памяти можно ускорится еще так Код:
иначе даже не пробовать сравнивать а вообще тестируй свой и мой варианты загоняя все в тиккаунты... смотри результат и делай выводы
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 03.02.2013 в 21:15. |
|
03.02.2013, 21:21 | #8 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Полностью одобряю.
Можно ли быть уверенным в том, что не понадобится искать элемент с пустой строкой. А если подумать? А если в следующих версиях? А если программу будешь доделывать не ты? Напротив строки (edit'а) ввода параметра поиска поставь галочку [использовать/не использовать] данный параметр поиска. В процедуру поиска добавь Код:
1. Возрастет производительность поиска 2. Как по мне (далее сугубо субъективно), код станет более компактным и понятным. |
03.02.2013, 21:29 | #9 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
можно вместо множества проиндексировать поля рекордов например так
тогда можно перебирать атрибуты в цикле а не инлайнить Код:
Код:
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 03.02.2013 в 21:35. |
03.02.2013, 21:47 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я это предлагал, множество для того, что бы не сравнивать символьные строки
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск по 3 параметрам | Айдар | БД в Delphi | 8 | 03.12.2012 22:01 |
Поиск по параметрам | amosik | Microsoft Office Access | 1 | 20.05.2012 01:01 |
поиск в списке | sergo2705 | Microsoft Office Access | 1 | 16.08.2011 16:20 |
Поиск файлов формата bmp по заданным параметрам | LinaSh | Помощь студентам | 17 | 18.04.2011 21:08 |
Автоматический поиск ячейки по заданным параметрам | Renzo | Microsoft Office Excel | 5 | 07.03.2009 17:48 |