Нужен метод быстрого поиска в списке данных.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Нужен метод быстрого поиска в списке данных.

Сообщение kibernetics » 21.05.2016 (Сб) 19:22

Привет!
Есть массив неких данных. Это строки от 1 до 3 слов.
Нужно оперативно вычленить их списка только те строки где есть вхождение искомых символов. Строк примерно 1200-1500
Данные можно собрать в коллекцию, словарь...
И получается что? Надо перебирать каждую запись и проверять на InStr()?
Какой метод есть эффективный по поиску?
Ещё думал сделать отвязанный рекордсет, и там использовать Find, но есть ли смысл, может есть более интересные решения?

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Нужен метод быстрого поиска в списке данных.

Сообщение ger_kar » 21.05.2016 (Сб) 19:52

А символы подряд или в разброс идут?
Бороться и искать, найти и перепрятать

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Re: Нужен метод быстрого поиска в списке данных.

Сообщение pronto » 22.05.2016 (Вс) 10:52

Ахо-Корасик. Но это из пушки по воробьям. Массив данных очень незначительный. Возможно, простого перебора будет достаточно.
O, sancta simplicitas!

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Нужен метод быстрого поиска в списке данных.

Сообщение ger_kar » 22.05.2016 (Вс) 13:21

Ну вообще банальный перебор, не есть хорошо, если например символы идут подряд в любой части слова, то можно как раз сделать коллекцию использовав для этой цели рекордсет в качестве хранилища. Причем, так как кроме рекордсета ему ничего более не нужно, то можно было бы заюзать его облегченную версию из ADOR. Только использовать не Find, а Filter и Sort. Реализовать свой перечислитель и вуаля! VB он как раз сильно заточен под использование рекордсета. И он достаточно легкий и удобный. Кроме этого к такой коллекции можно запросто прицепить Grid и все лицезреть в удобоваримом и наглядном виде.
Бороться и искать, найти и перепрятать

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Нужен метод быстрого поиска в списке данных.

Сообщение hclubmk » 23.05.2016 (Пн) 15:13

Похожий вопрос обсуждался здесь
Научились ли Вы радоваться трудностям?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 67

    TopList