|
|
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
Условие: есть слово (word_1), например "телевизор" есть лист-бокс (lbx_1) содержащий пункты: магнитофон холодильник телевизоры пылесос вопрос: как в ListBox'е можно поставить курсор на наиболее похожее слово, т.е. на строчку, которая содержит максимальное кол-во совпадающих букв слева ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 00:45 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
Написать программу, которая будет перебирать все значения в листбоксе и находить наиболее подходящее. Это не так просто, например если при том же списке будет введено слово телефон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 00:48 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
Спасибо Вроде написал: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 01:03 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
Спасибо не надо, я почти ничего не ответил. Программа красивая. Правда, если будут два одинаково подходящих слова (введено телики, а в списке есть телевизоры и телефоны), то будет найдено последнее из них, а не первое. Поэтому я пустил бы цикл по словам от конца к началу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 01:31 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
все равно большое спасибо. я бы не начал писать программу если бы так не сказал сам Владимир Саныч, все искал бы другие пути решения :) Правда, если будут два одинаково подходящих слова (введено телики, а в списке есть телевизоры и телефоны), то будет найдено последнее из них, а не первое. Поэтому я пустил бы цикл по словам от конца к началу. я тоже обратил на это внимание :) но это не важно заказчику (там все рубрики по алфавиту, и он сразу увидит все похожие) а вообще в программе использую ListBox и параллельный ему recordset (т.е. lbx.rowsource="запросу из которого открылся recordset", ListBox для отображения, а recordset - как раз для поиска строки. Столкнулся с тем что медленно работает (там приходится искать в ~2000 рубриках), похоже придется применять фильтр на первую букву (т.е. чтобы он искал только среди тех которые начинаются с той-же буквы) --------------------------------------- С уважением, Каримбаев Тимур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 01:42 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
с фильтром отлично работает ! 2780 записей - ищет в момент ! спасибо большое !!! P.S.: только сейчас заметил что топик открыл как гость :) --------------------------------------- С уважением, Каримбаев Тимур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 01:47 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
Если список отсортирован по алфавиту, то программу можно оптимизировать и проходить по 2000 слов не 5 раз, а 1. Идея в следующем: ищем по одной букве, находим первое слово, останавливаемся; ищем по двум буквам начиная с этого же слова (не с начала списка), находим, останавливаемся; и т.д.; если на очередное количество букв слово не найдено (или искомое слово уже вошло полностью), то ответом является последнее найденное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 01:49 |
|
||
|
Найти похожее значение в ListBox
|
|||
|---|---|---|---|
|
#18+
да....ваше решение в разы оптимальнее :) буквально "в разы" :) у меня и так - если на какой-то не найдено, то ответом является либо последнее найденное, либо 0 (если найденных не было) у вас просто более системное решение, я сразу обрубаю первую букву, вы после каждого прохода: первую, две первых, три первых и так пока не будет совпадений. Ну что-ж, как говорится - "век живи - век учись" еще раз огромное спасибо за внимание к проблемам начинающих программистов --------------------------------------- С уважением, Каримбаев Тимур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 01:55 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32392952&tid=1676936]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
207ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 554ms |

| 0 / 0 |
