Как не назови, суть от этого не меняется. Сложности в этом нет, но потери в скорости есть.
Игры с Evaluate
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Игры с Evaluate
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4646
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Игры с Evaluate
Лайфхак. Можешь редактор с подсветкой синтаксиса и прочими прибамбасами прицепить в программу на базе scintilla.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4646
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Игры с Evaluate
По сравнению с компилированным кодом, безусловно.Губин Игорь писал(а): ↑05 Август 2023, 20:19Как не назови, суть от этого не меняется. Сложности в этом нет, но потери в скорости есть.
C6/C11, ШВС, tps/btrieve.
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Игры с Evaluate
А придётся... Если, конечно, в клиентах оборонка, газовики, нефтянка и т.п.
Там принято жёсткое решение по уходу с виндов. Вопрос, лишь, в сроках. В одной конторе ещё работают на виндах, но уже отказываются рассматривать покупку софта не работающего под вайн или не имеющего нативной версии под линукс.
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Игры с Evaluate
А нафига? Тогда уж и интерфейс в сбермегамаркету для заказа чипсов.
Формулы набивают не пользователи. Они заданы изначально, могут быть свои для каждой записи и могут меняться, время от времени.
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Игры с Evaluate
У меня серийный софт. Решение должно учитывать интересы и таких контор. Да и сейчас у них денег становится всё больше.
Это я только кажусь дураком! На самом деле я полный идиот!
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
Игры с Evaluate
Для нефтяников: vbscript/javascript это не файл, запускаемый посредством RUN. Это _технология_ Active Scripting, встроенная в Windows с 1875 года, позволяет выполнять скрипты в виртуальной скрипт-машине. Есть готовая адаптация на Clarion в исходниках. Нет внешних dll, ocx, exe. По сути, это специфическое Windows API.
С уважением, ДП
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Игры с Evaluate
1875? Ну нифига себе...
Речь о том, как эта технология работает под Linux/Wine. Требует ли она подключения дополнительных модулей. Есть ли эти модули в репозиториях одобренных свыше вариантов Линукса... И т.д. И т.п.
Т.е., если раньше на слова Линукс и Макось я кривил рожу, то теперь вопросы с маками, практически, исчезли, а вот работоспособность под Linux/Wine становится обязательной и превалирующей.
Это я только кажусь дураком! На самом деле я полный идиот!
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
Игры с Evaluate
Погуглил "wine active scripting", нашёл статью про какой-то релиз Wine от 16-го года, в списке изменений есть "Active Scripting improvements".
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
Игры с Evaluate
Проблема в том, что Вы не знаете сами является ли эта операция логической или вычислительной с присвоением.
Evaluate расчитает эту строку как логическое сравнение. Если Вы знаете по какому признаку у Вас операция будет
вычислительной - отсекайте всё что справа от "=", расчитывайте и присваивайте тому что слева от "=". Вот и всё.
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2349
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 1 раз
- Поблагодарили: 19 раз
Игры с Evaluate
да ну, а мужики-то не знают...Игорь Столяров писал(а): ↑05 Август 2023, 21:25 Если Вы знаете по какому признаку у Вас операция будет
вычислительной - отсекайте всё что справа от "=", расчитывайте и присваивайте тому что слева от "=". Вот и всё.
Почему так работает, было понятно после первой же проверки алгоритма. Вопрос в том, что мне жутко не хотелось разбирать формулы и играться с присвоением для каждой записи. Я писал, что есть, относительно очевидный, способ с присвоением через вызываемую в Evaluate дополнительную функцию. Но это, всё равно, накладные расходы, хотя и меньшие, чем с разбором.
В общем, понятно, что фичи нет. Буду тестировать варианты.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
Игры с Evaluate
Рассмотрите вот такой вариант.
Т.к. символ "=" вызывает неоднозначность от контекста использования,
добавляем в синтаксис понятие "присвоить значение". Ну например "<<".
1. Проверяем строку на наличие символа "<<".
Если его нет - расчитываем как обычно результат логического сравнения.
2. Если есть (C << 10*B + D) - разрезаем строку по "<<", расчитываем правую часть
и присваиваем результат переменной в левой части. Это две строки кода.
3. Всё. Если оплата повремённая и Заказчик финансово состоялся -
то конечно уже лучше притянуть за уши скрипты и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4646
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Игры с Evaluate
Потестируй ещё bindexpression. Я не пользовался, а судя по доке, преобразует выражение в некий промежуточный байт код. В то время как evaluate при каждом вызове делает синтаксический разбор. Если делается часто, например, для каждой записи из списка, должно заметно ускорить вычисления.Губин Игорь писал(а): ↑05 Август 2023, 21:31да ну, а мужики-то не знают...Игорь Столяров писал(а): ↑05 Август 2023, 21:25 Если Вы знаете по какому признаку у Вас операция будет
вычислительной - отсекайте всё что справа от "=", расчитывайте и присваивайте тому что слева от "=". Вот и всё.
Почему так работает, было понятно после первой же проверки алгоритма. Вопрос в том, что мне жутко не хотелось разбирать формулы и играться с присвоением для каждой записи. Я писал, что есть, относительно очевидный, способ с присвоением через вызываемую в Evaluate дополнительную функцию. Но это, всё равно, накладные расходы, хотя и меньшие, чем с разбором.
В общем, понятно, что фичи нет. Буду тестировать варианты.т
C6/C11, ШВС, tps/btrieve.