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

Ваш аккаунт

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

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

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

select case

464
14 августа 2003 года
WildAn
147 / / 19.05.2003
Интересно, а как быстро работает эта конструкция? если, предположим, их (case-ов) порядка тысячи в процедуре, и условию соответствует последний case
267
14 августа 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by WildAn
Интересно, а как быстро работает эта конструкция? если, предположим, их (case-ов) порядка тысячи в процедуре, и условию соответствует последний case



Я, конечно, сам не проверял, но думаю, что достаточно быстро - ведь это собственно язык, после компиляции должно быстро работать.

Но если у тебя в программе есть Select Case на 1000 случаев - значит твоя программа написана плохо (уж не обижайся). Постарайся изменить логику своей программы. Ручная дрель хороша для трех дырок. Для тысячи - лучше купить электрическую... ;)

401
14 августа 2003 года
Br@in RIPper
289 / / 15.02.2003
case проверяется по очереди. можно представить как
if ... goto case1
else if ... goto case2
else if ... goto case3
так что если case тысячный до него произошло 1000 проверок.
Насчет скорости...
на asm это выглядит так

cmp ...
je ...
cmp ...
je ...

cmp - 1-2 цикла
jmp - 8-16 (может и больше)
464
15 августа 2003 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by Cutty Sark


Я, конечно, сам не проверял, но думаю, что достаточно быстро - ведь это собственно язык, после компиляции должно быстро работать.

Но если у тебя в программе есть Select Case на 1000 случаев - значит твоя программа написана плохо (уж не обижайся). Постарайся изменить логику своей программы. Ручная дрель хороша для трех дырок. Для тысячи - лучше купить электрическую... ;)


Привет Так я еще не писал эту прогу ;-) Просто здесь работа с базами данных (dbf-файлы). Предположительно есть форма, в которой будут указываться критерии сортировки, критерии отбора данных, поля, необходимые к выводу (полей порядка 30). Комбинации критерий отбора и отображение полей может быть много Не так ли? А данные получаю в Excel через sql-запросы (microsoft query). Вот так вот.

267
15 августа 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by WildAn

Привет Так я еще не писал эту прогу ;-) Просто здесь работа с базами данных (dbf-файлы). Предположительно есть форма, в которой будут указываться критерии сортировки, критерии отбора данных, поля, необходимые к выводу (полей порядка 30). Комбинации критерий отбора и отображение полей может быть много Не так ли? А данные получаю в Excel через sql-запросы (microsoft query). Вот так вот.



Абстрактно, конечно, трудно рассуждать, но можно хранить твои варианты где-либо (в Экселе или в Дбф) вместе с параметрами того, что тебе нужно потом делать. Не могу поверить, что в каждом из вариантов тебе нужен абсолютно неповторимый алгоритм дальнейших действий. Наверняка твои дальнейшие действия можно разделить на несколько групп с однотипными комбинациями - а значит, и существенно уменьшить количество кейсов. Ну не дело это - такие программы устраивать (см. мою фразу про дрель). 8)

464
15 августа 2003 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by Cutty Sark

Абстрактно, конечно, трудно рассуждать, но можно хранить твои варианты где-либо (в Экселе или в Дбф) вместе с параметрами того, что тебе нужно потом делать. Не могу поверить, что в каждом из вариантов тебе нужен абсолютно неповторимый алгоритм дальнейших действий. Наверняка твои дальнейшие действия можно разделить на несколько групп с однотипными комбинациями - а значит, и существенно уменьшить количество кейсов. Ну не дело это - такие программы устраивать (см. мою фразу про дрель). 8)



Ну насчет тысячи case-ов я, конечно погорячился. Их действительно будет гораздо меньше. Хотя все-таки интересно, за какое время он пробежит эту тысячу Ну хотя бы сотню ;0) Попробовать что-ли?

464
15 августа 2003 года
WildAn
147 / / 19.05.2003
Цитата:
Originally posted by WildAn


Ну насчет тысячи case-ов я, конечно погорячился. Их действительно будет гораздо меньше. Хотя все-таки интересно, за какое время он пробежит эту тысячу Ну хотя бы сотню ;0) Попробовать что-ли?


Попробовал. Использовал 775 case-ов. До последнего доходит меньше чем за секунду.

267
15 августа 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by WildAn

Попробовал. Использовал 775 case-ов. До последнего доходит меньше чем за секунду.



Примерно так и должно было быть... :)

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