Страница 1 из 2
ActiveScript
Добавлено: 18 Январь 2020, 22:56
Дед Пахом
Constantine писал(а): ↑19 Июнь 2019, 9:17
А интересует именно способ прикручивания: через COM-интерфейс, через Shell, через OLE и т.п.
Если кто не помнит, речь в вопросе шла о vbscript, и кроме как запускать скрипт через RUN(file.vbs), выводить результаты в текстовый файл и затем этот файл парсить, ничего не предложили. Хотя есть более элегантный способ: ActiveScript (гуглите кому интересно). Короче, парсеры vbscript и javascript внедряются в приложение как родные.
Здесь демка.
Можно просто выполнить скрипт (кнопка Run script), можно вычислить выражение и получить результат (кнопка Evaluate expression). Если выполнить скрипт, содержащий функции, то затем эти функции можно вызывать повторно.
Примеры (vbscript).
1. Выичсления.
Можно испоьзовать как сложный калькулятор, например:
0.75 / 4 ' сколько будет ноль-семьдесят-пять на четверых? (0,1875)
или что-то более сложное с корнями и логарифмами:
sqr(5) + log(13) вернёт 4,80101733496133
В обоих случаях надо жать кнопку Evaluate expression.
2. Функции.
Числа Фибоначчи, первые N штук. Выполним скрипт
Код: Выделить всё
function fibonacci(limit)
dim a,b,c,res
a=0
b=1
res="Fibonacci numbers from 1 to "& limit & vbCrLf
for i=1 to limit
c=a+b
a=b
b=c
res=res & c & vbCrLf
next
fibonacci=res
end function
а затем вычислим выражение (Evaluate expression) "fibonacci(50)" (первые 50 чисел) - получим список чисел в поле результата.
Аналогично для JScript.
ActiveScript
Добавлено: 19 Январь 2020, 16:09
vic7tar
Да, интересно.
Как обычно, глупый вопрос - а почему на fibonacci(225) происходит обрыв последовательности?
ActiveScript
Добавлено: 19 Январь 2020, 16:16
Дед Пахом
vic7tar писал(а): ↑19 Январь 2020, 16:09
почему на fibonacci(225) происходит обрыв последовательности?
Ёмкость текстового поля ограничена 4096-ю символами.
ActiveScript
Добавлено: 19 Январь 2020, 17:31
morkovin
Дед Пахом писал(а): ↑18 Январь 2020, 22:56
Примеры (vbscript).
а обращение к системным функциям, вызовы WinApi?
ActiveScript
Добавлено: 19 Январь 2020, 17:49
Дед Пахом
morkovin писал(а): ↑19 Январь 2020, 17:31
а обращение к системным функциям, вызовы WinApi?
не, только числа Фибоначчи.
ActiveScript
Добавлено: 20 Январь 2020, 8:37
Constantine
Дед Пахом писал(а): ↑18 Январь 2020, 22:56
Если кто не помнит, речь в вопросе шла о vbscript, и кроме как запускать скрипт через RUN(file.vbs), выводить результаты в текстовый файл и затем этот файл парсить, ничего не предложили.
Спасибо, у меня этот вопрос успешно решился через PowerShell.
ActiveScript
Добавлено: 20 Январь 2020, 10:41
finsoftrz
А мне и через файлы по кайфу. Задачи только не числа Фибоначчи, а парсинг xml файлов или взаимодействие с офисными пакетами. С точки зрения приложения кода минимум, все убрано внутри классов.
ПыСы. Уточню, что писали не про run, а про управляемый запуск процесса средствами win api.
ActiveScript
Добавлено: 20 Январь 2020, 12:31
Yufil
У меня вызываются скрипты на Python. Когда-то делал интерфейс для передачи данных туда-сюда.
Цель всё та же - обучающие приложения, построение и преобразование данных форматов XML, HTML, Javascript, Flash(ActionScript, Flash Video, Adobe Animate) , JSON, XLSX, SCORM, конвертация видео через FFMpeg и всё такое...
Потом научился собирать exe для python-приложений и просто вызываю через Run, для юзеров при необходимости собираю портативку, пока устраивает.
ActiveScript
Добавлено: 20 Январь 2020, 14:15
Дед Пахом
win api вместо RUN это круто
Я не против работы через файлы, нормальное решение.
ActiveSсript это естественный механизм (win api) работы со скриптами (не только vb и javascript, но и питон, перл, руби, луа и другие). Причём некоторые (javascript например) как файл просто не запустится, ему браузер нужен.
ActiveScript
Добавлено: 20 Январь 2020, 14:43
Yufil
Вроде тут некоторая путаница между Jscript и Javascript - совсем разные языки, JScript - намного более убогий и давным-давно не развивается, а Javascript в последних версиях ( где-то с 2011 года) - вполне съедобен.
ActiveScript
Добавлено: 20 Январь 2020, 15:02
Дед Пахом
Yufil писал(а): ↑20 Январь 2020, 14:43
Вроде тут некоторая путаница между Jscript и Javascript
Да, я сам слегка в них запутался. Ладно, javascript вычёркиваем.
ActiveScript
Добавлено: 20 Январь 2020, 15:47
finsoftrz
Дед Пахом писал(а): ↑20 Январь 2020, 14:15
win api вместо RUN это круто
Я не против работы через файлы, нормальное решение.
ActiveSсript это естественный механизм (win api) работы со скриптами (не только vb и javascript, но и питон, перл, руби, луа и другие). Причём некоторые (javascript например) как файл просто не запустится, ему браузер нужен.
Да, что-то я подзабыл. При работе с vbscript действительно run используется. Процессы - это когда куда-нибудь через интернет лезть и есть возможность зависания.
Я не совсем понял. Предлагается использовать win api или все-такие com объект? И есть ли какие дополнительные зависимости или все в рамках стандартных возможностей винды из коробки?
ActiveScript
Добавлено: 20 Январь 2020, 16:25
Дед Пахом
finsoftrz писал(а): ↑20 Январь 2020, 15:47
Предлагается использовать win api или все-такие com объект? И есть ли какие дополнительные зависимости или все в рамках стандартных возможностей винды из коробки?
Win api, никаких зависимостей, чистый Clarion.
ActiveScript
Добавлено: 20 Январь 2020, 16:42
Дед Пахом
Про javascript... Инициализация движка с параметром "javascript" работает идентично параметру "JScript". Не знаю, что это значит.
Есть ещё один движок ChakraJS ("Chakra JavaScript engine that powers Microsoft Edge"), правда его надо как-то установить, просто так не запускается.
ActiveScript
Добавлено: 20 Январь 2020, 17:13
finsoftrz
Дед Пахом писал(а): ↑20 Январь 2020, 16:25
finsoftrz писал(а): ↑20 Январь 2020, 15:47
Предлагается использовать win api или все-такие com объект? И есть ли какие дополнительные зависимости или все в рамках стандартных возможностей винды из коробки?
Win api, никаких зависимостей, чистый Clarion.
Ну так круто. Осталось понять еще, зачем это может быть нужно в практических задачах. Числа Фибоначчи у меня ассоциируются только с массажными креслами Ямагучи.