Difference between revisions of "LoadFunctionFromBuffer"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
m (1 revision imported)
 
(No difference)

Latest revision as of 11:38, 18 November 2022

  LoadFunctionFromBuffer (Системные функции)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Аргумент неверного типа, ошибка при импорте
Визуальность:Нет

Функция производит импорт из памяти экспортированной ранее с помощью SaveFunctionToBuffer компилированной функции. Функция возвращает объект аналогичный результату функции Compile, который можно использовать многократно с функциями Exec и ExecEx.

Синтаксис

LoadFunctionFromBuffer(<Экспортированная в память компилированная функция (BUFFER, STRING)>,<Путь к исходному тексту (STRING),<Исходный текст (STRING)>):<Компилированная функция в виде объекта (COMPILEDFUNCTION)>

Аргументы

  • <Экспортированная в память компилированная функция (BUFFER, STRING)> - Буфер с экспортированной в память функцией, либо ANSI строка, содержащая байты экспортированной функции.
  • <Путь к исходному тексту (STRING)> - (необязательный аргумент) Аргумент задает путь и название файла и указывает на исходный текст на диске (в формате sf), который будет загружен и показан в отладчике. Если этот или последующий аргументы не указаны, исходный текст не будет доступен в отладчике, что может быть неудобным при отладке ошибок.
  • <Исходный текст (STRING)> - (необязательный аргумент) Аргумент задает исходный текст, функция которого была загружена из буфера. Исходный текст будет загружен и показан в отладчике, если отладка будет производиться. Если этот или предыдущий аргументы не указаны, исходный текст не будет доступен в отладчике, что может быть неудобным при отладке ошибок. Обычно задается или путь к исходному тексту или сам исходный текст, задание и того и другого возможно, но будет всегда использован третий аргумент, как более приоритетный.

Возвращаемое значение

Возвращает новый объект компилированной функции, который можно исполнить с помощью функций Exec и ExecEx.

Примеры

//Стр -- текстовый блок с исходным текстом
Стр:="Message(""Hello, world!"");";

aFunc:=Compile(Стр,1);
aBuf:=SaveFunctionToBuffer(aFunc);
aBuf.SaveToFile("c:\testfile.bin");

bBuf:=Buffer.Create();
bBuf.LoadFromFile("c:\testfile.bin");
bFunc:=LoadFunctionFromBuffer(bBuf);

//В лог клиента будет выведено "Hello, world!"
Exec(bFunc);