Сравнивает множество аргументов по маске, данные записывать в виде "(аргумент 1231) = (авыва) = %1; %2 = %3", где %# - данные с точки, (*) - внутренние данные, ; - конец блока. Результат выдается в формате "%1, ...", где %# - результат операции сравнения(1 или 0) в блоке #.
Пример использования в архиве
Спасибо, Dilma, помог
If-Else Multi:
[burl=http://www.hiasm.com/xf//getfile/14791]Скачать последнюю версию[/burl]
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
карма: 10 |
| ||
файлы: 1 | if_else_multi.rar [2.7KB] [408] |
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Оптимизировал код, убрал ненужные моменты, устранил неточность в сравнении двух и более аргументов
Теперь компонент работает безотказно! ------------ Дoбавленo в 18.38: Хихи! Безотказно, но долга, вычисление операндов никуда не годится Можете посоветовать что-нибудь |
|||
карма: 10 |
| ||
файлы: 1 | if_else_multi.rar [2.8KB] [261] |
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
If_Else_Multi v2.0, совместимость конечно потеряна, да только скорость работы увеличена в разы, по сравнению с предыдущим(цикл в 100000 интеграций If_else_multi ~ 24.000 секунды, If_Else ~ 0.370сек, If_Else_Multi v2.0 = 4.890сек, If_Else = 3.780сек, в архиве схема XXX_SpeedTest.sha).
Преимущества:
my=mytext pi=3.14...). 2. Увеличена скорость работы(лишь в 1.2-1.3 раза дольше, чем If_Else выполнит те же действия!!!). 3. Изменено формирование маски строки(пример %1 >= #1 = %2 <> %3; #pi = %4 <> %5; ... и т.д). |
|||
карма: 10 |
| ||
файлы: 1 | if_else_multi.rar [4.5KB] [314] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 5 раз(а), последний 2021-06-22 14:32:58 |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Выкинуло что-то
|
|||
карма: 10 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
До конца оптимизированная версия + примеры(работа с МТ, основной пример). Обнаружите баги, пишите сюда
|
|||
карма: 10 |
| ||
файлы: 1 | if_else_multi.rar [6.1KB] [447] |
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
Assasin, ты мне объясни, а вот зачем тут integer, разве функция Round не целочисленная
|
|||
карма: 22 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Просто осталась с другого раза, там не было round, вот я и забыл про нее
Поправил, есть что-нибудь еще? |
|||
карма: 10 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
Assasin писал(а): есть что-нибудь еще?Глубоко не вникал, так, глянул синтаксис |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Assasin писал(а): Сравнивает множество аргументов по маске |
|||
карма: 25 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
Tad писал(а): а зачемВидимо, тяжело использовать MathParse, супер-пупер сложная логика сравнений у него Но я могу и ошибаться |
|||
карма: 22 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Разве MathParse сравнивает "аврп" и "прав" ? или "1в" и "1в"
|
|||
карма: 10 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А поставить несколько обыкновенных If_Else
|
|||
карма: 25 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
По той же причине я не хочу ставить несколько If_Else, что и несколько Math вместо MathParse, скорости не выиграю, зато маской напишу, приятней на восприятие, есть маска ((%1 + 3) / 4 - 120), мне не хочется заменить ..Parse простыми 3-мя Math, так как удобнее и нагляднее действия + меньше компонентов в схеме. А с IF_ELSE_Multi, так по сравнению со штатным(одинарным) он может сравнивать по блокам и выдавать результат сравнения по блокам, чего нет в MathParse, а с штатным If_Else это еще больше компонентов + если первый же If-Else даст False в первом блоке, то придется еще строить систему хабов, чтобы продолжать сравнение по блокам -- одним словом в сто раз сложнее и медленнее(преувеличил конечно)
Подпись: Assasin, доклад на тему "Почему я не хочу использовать простые If_Else за место одного If_Else_Multi?" |
|||
карма: 10 |
|
Ответов: 373
Рейтинг: 108
|
|||
Assasin, иконка
предлагаю сменить на эту -------- http://www.hiasm.com/forum_serv.php?q=56&id=479 http://www.hiasm.com/forum_serv.php?q=56&id=478 |
|||
карма: 0 |
| ||
Голосовали: | Assasin |