ActiveScript

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

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.
Последний раз редактировалось Дед Пахом 20 Январь 2020, 14:59, всего редактировалось 1 раз.
С уважением, ДП
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

ActiveScript

Сообщение vic7tar »

Да, интересно.
Как обычно, глупый вопрос - а почему на fibonacci(225) происходит обрыв последовательности?
C10, Win10x64
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

vic7tar писал(а): 19 Январь 2020, 16:09 почему на fibonacci(225) происходит обрыв последовательности?
Ёмкость текстового поля ограничена 4096-ю символами.
С уважением, ДП
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

ActiveScript

Сообщение morkovin »

Дед Пахом писал(а): 18 Январь 2020, 22:56 Примеры (vbscript).
а обращение к системным функциям, вызовы WinApi?
WBR, morkovin
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

morkovin писал(а): 19 Январь 2020, 17:31 а обращение к системным функциям, вызовы WinApi?
не, только числа Фибоначчи.
С уважением, ДП
Constantine
Активист
Сообщения: 185
Зарегистрирован: 07 Февраль 2017, 16:58

ActiveScript

Сообщение Constantine »

Дед Пахом писал(а): 18 Январь 2020, 22:56 Если кто не помнит, речь в вопросе шла о vbscript, и кроме как запускать скрипт через RUN(file.vbs), выводить результаты в текстовый файл и затем этот файл парсить, ничего не предложили.
Спасибо, у меня этот вопрос успешно решился через PowerShell.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ActiveScript

Сообщение finsoftrz »

А мне и через файлы по кайфу. Задачи только не числа Фибоначчи, а парсинг xml файлов или взаимодействие с офисными пакетами. С точки зрения приложения кода минимум, все убрано внутри классов.

ПыСы. Уточню, что писали не про run, а про управляемый запуск процесса средствами win api.
C6/C11, ШВС, tps/btrieve.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

ActiveScript

Сообщение Yufil »

У меня вызываются скрипты на Python. Когда-то делал интерфейс для передачи данных туда-сюда.

Цель всё та же - обучающие приложения, построение и преобразование данных форматов XML, HTML, Javascript, Flash(ActionScript, Flash Video, Adobe Animate) , JSON, XLSX, SCORM, конвертация видео через FFMpeg и всё такое...

Потом научился собирать exe для python-приложений и просто вызываю через Run, для юзеров при необходимости собираю портативку, пока устраивает.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

win api вместо RUN это круто :-)
Я не против работы через файлы, нормальное решение.
ActiveSсript это естественный механизм (win api) работы со скриптами (не только vb и javascript, но и питон, перл, руби, луа и другие). Причём некоторые (javascript например) как файл просто не запустится, ему браузер нужен.
С уважением, ДП
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

ActiveScript

Сообщение Yufil »

Вроде тут некоторая путаница между Jscript и Javascript - совсем разные языки, JScript - намного более убогий и давным-давно не развивается, а Javascript в последних версиях ( где-то с 2011 года) - вполне съедобен.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

Yufil писал(а): 20 Январь 2020, 14:43 Вроде тут некоторая путаница между Jscript и Javascript
Да, я сам слегка в них запутался. Ладно, javascript вычёркиваем.
С уважением, ДП
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ActiveScript

Сообщение finsoftrz »

Дед Пахом писал(а): 20 Январь 2020, 14:15 win api вместо RUN это круто :-)
Я не против работы через файлы, нормальное решение.
ActiveSсript это естественный механизм (win api) работы со скриптами (не только vb и javascript, но и питон, перл, руби, луа и другие). Причём некоторые (javascript например) как файл просто не запустится, ему браузер нужен.
Да, что-то я подзабыл. При работе с vbscript действительно run используется. Процессы - это когда куда-нибудь через интернет лезть и есть возможность зависания.

Я не совсем понял. Предлагается использовать win api или все-такие com объект? И есть ли какие дополнительные зависимости или все в рамках стандартных возможностей винды из коробки?
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

finsoftrz писал(а): 20 Январь 2020, 15:47 Предлагается использовать win api или все-такие com объект? И есть ли какие дополнительные зависимости или все в рамках стандартных возможностей винды из коробки?
Win api, никаких зависимостей, чистый Clarion.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

ActiveScript

Сообщение Дед Пахом »

Про javascript... Инициализация движка с параметром "javascript" работает идентично параметру "JScript". Не знаю, что это значит.
Есть ещё один движок ChakraJS ("Chakra JavaScript engine that powers Microsoft Edge"), правда его надо как-то установить, просто так не запускается.
С уважением, ДП
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

ActiveScript

Сообщение finsoftrz »

Дед Пахом писал(а): 20 Январь 2020, 16:25
finsoftrz писал(а): 20 Январь 2020, 15:47 Предлагается использовать win api или все-такие com объект? И есть ли какие дополнительные зависимости или все в рамках стандартных возможностей винды из коробки?
Win api, никаких зависимостей, чистый Clarion.
Ну так круто. Осталось понять еще, зачем это может быть нужно в практических задачах. Числа Фибоначчи у меня ассоциируются только с массажными креслами Ямагучи. :-)
C6/C11, ШВС, tps/btrieve.
Ответить