|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
В очень многих местах кода используется оператор ветвления с одним и тем же набором условий. А именно "Рога", "Справки", "Копыта", "Шапки" Код: vbnet 1. 2.
подскажите как можно записав эту строку в коде единожды в переменную или ещё во что, что бы каждый раз не писать этот набор Код: vbnet 1.
а подставлять короткую замену типа: Код: vbnet 1. 2. 3. 4.
------------------------------------------------------------------------ Спасибо за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 19:33 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58, Где-то в начале: Код: vbnet 1. 2. 3.
Потом процедура: Код: vbnet 1. 2. 3. 4. 5. 6.
Как пользоваться: Код: vbnet 1. 2. 3. 4. 5.
Ну как бы Case тут наверно не в кассу, наверно нужно If -ы использовать типа... Код: vbnet 1. 2. 3.
Единственное нужно проанализировать варианты типа не сработает ли слово "правки" из-за "Справки", если такая вероятность есть, то функцию нужно переделывать (NABOR сделать не строку, а массив или временную табличку со значениями) Ну или я тебя не понял.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:12 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
vmagесли такая вероятность есть, то функцию нужно переделывать (NABOR сделать не строку, а массив или временную табличку со значениями) а если ее нет, то тупо используй Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:26 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
vmag, Да "правки" и "Справки" это конечно - да. Ты советуешь ИФами пользоваться... Надо подумать. Слишком до фига этих case, к тому же там ветвления не одного порядка... потому хотел придумать изврат именно с case... в любом случае. спасибо за совет. Надо подумать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:26 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
vmag, А CASE с Instr() - не дружат? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:31 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58потому хотел придумать изврат именно с case... Если набор будет не строка а строки или элементы массива строк, то можно так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:52 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Код: vbnet 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. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:53 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58А CASE с Instr() - не дружат? выход из Instr ноль или число, подумай... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:55 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Если набор будет не строка а строки или элементы массива строк, то можно так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Но тада это тоже самое Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 21:57 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
vmagчас58А CASE с Instr() - не дружат? выход из Instr ноль или число, подумай... чёт башка совсем не варит. Уже полночь близится. Надо отложить это до завтра. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:00 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Predeclared, чуть мозг не сгорел... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:02 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Predeclared, Scripting.Dictionary.... Вон как ?! Высший пилотаж аж. Надо будет завтра поюзать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:04 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58, создал таблицу "tblSpravka", упрощенно ID_Check Parent Naim1 0 Константы 2 1 Общий, Частный3 1 Рога, Справки, Копыта, Шапки создал функцию типа Код: vbnet 1. 2. 3. 4. 5. 6.
Вызывается так FromSprav(3) Родитель для создания самообъединения и редактирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:10 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
vmagPredeclared, чуть мозг не сгорел... :) Надо регулярно периодически охлаждать. Есть вкусный хладогент: Beluga :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:11 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
alecko, Спасибо. А где тут ветвление CASE ? мне бы Код: vbnet 1. 2.
вместо строки Код: vbnet 1.
подставлять переменную(функцию), содержащую эту строку типа Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:18 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:27 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
alecko, Но тогда получается - таблица вроде как и не нужна? Внутри функции Код: vbnet 1.
организовать своё ветвление на CASE а в программе, просто обращаться к этой функции Код: vbnet 1. 2.
или я туплю? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:38 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
можно и в функции в чистом виде хранить но константы нужно заводить в таблицу (если "Шапки" у клиента станут "Фуражками", количество аргументов уменьшится/увеличится, в код лезть будет необязательно) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:52 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
если аргументов таки немного то делают так в шапке модуля где хранится функция записывают Код: vbnet 1. 2. 3. 4. 5.
в этом случае при выборе аргумента будет помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 22:59 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58vmag, А CASE с Instr() - не дружат? Подружить надо :) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 23:52 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
zimkon, привет! Твой вариант тоже наткнется на такие грабли: vmagЕдинственное нужно проанализировать варианты типа не сработает ли слово "правки" из-за "Справки", не смотря на большее количество InStr чем в моем примере + Mid + IIF :) Выход проще, в моем примере с одним InStr (как и в твоем нужно только причесать данные): 1. Общий пакет (строку) оформлять например так: "@Рога@Справки@Копыта@Шапки@" 2. Искать в ней например это "@Рога@" найдется "@правки@" не найдется ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 02:10 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Короче, Если причесать данные так как выше, то хватит одной строки Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 02:14 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
PredeclaredЕсть вкусный хладогент: BelugaХм... На вкус и цвет... Обычная водяра. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 04:12 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
vmagzimkon, привет! Твой вариант тоже наткнется на такие грабли: vmagЕдинственное нужно проанализировать варианты типа не сработает ли слово "правки" из-за "Справки", не смотря на большее количество InStr чем в моем примере + Mid + IIF :) Выход проще, в моем примере с одним InStr (как и в твоем нужно только причесать данные): 1. Общий пакет (строку) оформлять например так: "@Рога@Справки@Копыта@Шапки@" 2. Искать в ней например это "@Рога@" найдется "@правки@" не найдется Привет! Я подумал об этом через минуту после того, как нажал опубликовать. Лень было пост править. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 05:25 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Очепятка ...не - 1, а + 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 05:43 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
alecko, Изначально, я не предполагал, что у них так часто будут меняться шапки на фуражки и появляться кепки... залез в код, раз в год и заменил слова ассортимента. Теперь вот надо исправлять свой промах. Слишком много мест править приходится. Хорошо, если это будет только в одном месте кода, которое подставляется в виде короткой и постоянной строчки типа (NABOR)в качестве условия отбора во все остальные места ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 09:29 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58alecko, Изначально, я не предполагал, что у них так часто будут меняться шапки на фуражки и появляться кепки... залез в код, раз в год и заменил слова ассортимента. Теперь вот надо исправлять свой промах. Слишком много мест править приходится. Хорошо, если это будет только в одном месте кода, которое подставляется в виде короткой и постоянной строчки типа (NABOR)в качестве условия отбора во все остальные места почему бы не выносить всю эту информацию в базу? Зачем менять код? Сделайте им настройку, пусть сами выбирают. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 09:33 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 09:43 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
ПанургОзверинЗачем менять код? Сделайте им настройку, пусть сами выбирают. А оплачиваемая поддержка?.. разработка стоит дороже, чем поддержка. Зачем тратить время на поддержку? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 09:49 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Озверин, Поддержка, порой, длится годами.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 09:55 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
спасибо всем за помощь. Булевые рулят! получилось так: Функция : Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Во всех селектах - обращаемся к этой функции. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:24 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58, ад какой то ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:25 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Можно, конечно к этой функции обращаться и по If .... Главное, что менять значение строки теперь придётся в одном месте кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:27 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Озверин, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:27 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58Озверин, Спасибо. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Я не понял, а почему бы просто не вернуть значение ф-ии FUN_NABOR_VIDOV_PAY(PAY_VIDS)? Зачем еще его в select-case загонять? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:35 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Озверин, Да, ты прав. Просто это вообще не то вышло, что я пытаюсь сделать. :-) Мне надо в многоветвевой отбор селектами, вставить одно из условий в виде Case NABOR заменив последовательность слов Код: vbnet 1.
Одним словом NABOR. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:45 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58, так а зачем из одного select-case делать два? чем вас не устраивает ситуация Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:50 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58, тебе же уже предложили нормальный (для этой ненормальной ситуации) вариант! Который с таблицей. Два поля " ключ-значение ", дёргать длукапом или запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:52 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58, а откуда приходят эти рога и копыта? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 10:59 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Панург, ты прав. Этот вариант норм. Только, конечно, без таблицы буду делать. Просто шарики за ролики заскочили с этим авралом... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 11:12 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 11:31 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
Панург, в ЛОБ. в коде строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 11:35 |
|
Переменная в операторе ветвления.
|
|||
---|---|---|---|
#18+
час58в ЛОБ. в коде строки. Летит тяжелый транспортный самолет в сопровождении двух истребителей. Лететь долго, и пилотам истребителей стало скучно. Ну и начали они вы@бываться друг перед другом: мертвые петли крутят, виражи, восьмерки. И тут в радиоэфир вклинивается пилот транспортника: — А спорим, я сейчас сделаю то, чего вы на своих истребителях никогда не сможете. — Ты? На своем беременном Ил-76, собрался тягаться с нами, лучшими асами страны? Ну давай, удиви нас. Прошло десять минут, транспортник как летел ровно, так и летит. Истребителям надоело ждать, и они вызывают пилота Ил-76: — Ну и? Когда ты начнешь? — Уже готово. — И что же ты сделал того, что не можем мы? — Сходил поссать и выпил кофе. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 15:54 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1611021]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 177ms |
0 / 0 |