Библиотека позволяет компилировать на лету и тут же запускать без сохранения на диск, код написанный на языке программирования Перфолента.
Возможно так же подключение откомпилированого кода в качестве внешней компоненты для работы с классами.
Когда может пригодиться?
- Если Вы писали-писали на OneScript и вдруг поняли, что в каком-то месте производительности не хватает;
- Если уже есть код написанный на Перфоленте и можно его просто использовать;
- Если из OneScript не получается сделать вызов какой-либо функции из библиотек написанных на .Net языках;
Методы КомпилироватьИВыполнить
и КомпилироватьИВыполнитьИзФайла
подходят для однократного или редкого выполнения кода Перфоленты,
т.к. компиляция происходит при каждом вызове метода, что занимает некоторое время.
Метод Старт
модуля Программа
может быть функцией или процедурой,
но обязательно с одним параметром, имеющим тип совместимый с типами языка OneScript.
Для функции возвращаемое значение так же должно иметь тип совместимый с типами языка OneScript.
Если необходимо передать в метод Старт
несколько параметров,
то Вы можете поместить их в массив или в другую перечисляемую коллекцию и передать её через параметр типа Объект
.
Скрипт = "
|Программа ЗапускКода
| Функция Старт(Чис тип Число) тип Строка
| ВыводСтроки Чис
| Возврат ""ОК! Выполнено!!!""
| КонецФункции
|КонецПрограммы
|";
П = Новый Перфолента;
Результат = П.КомпилироватьИВыполнить(Скрипт,555));
//то же самое, но скрипт должен находиться в файле
Результат = П.КомпилироватьИВыполнитьИзФайла("C:\МойСкрипт.пфлс",555));
Подходит для многократного выполнения кода Перфоленты, т.к. компиляция выполняется один раз перед выполнением.
В начале вызывается один из методов Компилировать
или КомпилироватьИзФайла
,
а затем вызов метода Выполнить
повторяется необходимое количество раз.
Метод Старт
модуля Программа
может быть функцией или процедурой, помеченной атрибутом &ВидноВсем
или &ВидноСборке
,
но обязательно с одним параметром, имеющим тип совместимый с типами языка OneScript.
Для функции возвращаемое значение так же должно иметь тип совместимый с типами языка OneScript.
Если необходимо передать в метод Старт
несколько параметров,
то Вы можете поместить их в массив или в другую перечисляемую коллекцию и передать её через параметр типа Объект
.
П = Новый Перфолента;
П.Текст = "
|Программа ЗапускКода
| &ВидноСборке Функция Старт(Чис тип Число) тип Строка
| ВыводСтроки Чис
| Возврат ""ОК! Выполнено!!!""
| КонецФункции
|КонецПрограммы
|";
//указываем имя модуля Программа, если оно задано в скрипте...
П.Компилировать("ЗапускКода");
//команду Выполнить можно запускать многократно с разными параметрами
Результат = П.Выполнить(333);
Результат = П.Выполнить(555);
Результат = П.Выполнить(777);
Подходит для использования классов определенных в программе написанной на языке Перфолента.
П = Новый Перфолента;
П.Текст = "
|&ВидноВсем Класс Котик
| &ВидноВсем Свойство Имя тип Строка = ""Безымянный""
| &ВидноВсем Функция Мяу() тип Строка
| Возврат ""МЯУ!!!""
| КонецФункции
|КонецКласса
|";
П.Компилировать();
П.ПодключитьКакВнешнююКомпоненту();
Котик = Новый COMОбъект("Котик");
Сообщить("Было имя: "+Котик.Имя);
Котик.Имя="Васька";
Сообщить("Стало имя: "+Котик.Имя);
Сообщить(Котик.Мяу());
OneScript 1.4.0 и выше.
Перфолента 0.4.13.0 и выше.
Для установки необходимо:
- Скачать файл perfolenta-*.ospx из раздела releases
- Воспользоваться командой:
opm install -f <ПутьКФайлу>
или установить с хаба пакетов
opm install perfolenta
Для установки языка Перфолента скачайте и запустите инсталлятор с официального сайта:
Загрузка файлов и документации языка Перфолента
Статья об интеграции языков OneScript и Перфолента
Переход на сайт языка Перфолента.Net
Смотри файл LICENSE.