Внешние Lua-модули

Страницы: 1
RSS
Внешние Lua-модули
 
Будет ли Lua виртуальная машина, встроенная в QUIK, корректно работать с внешними (не встроенными в язык) модулями, которые я установил в свою систему через менеджер модулей luarocks?

К примеру мне нужен модуль для распарсивания JSON данных.

В Linux-консоли...
Код
$ sudo luarocks install lua-cjson

В коде торгового робота...
Код
local json = require( 'cjson' )
local tbl = json.decode( json_string )  -- JSON string -> Lua table
local json_string = json.encode( tbl )  -- Lua table -> JSON strin

Будет такой код работать в торговом роботе?
 
Если искателю require задан путь к модулю и модуль имеет открытый код или скомпилирован с той же версией что и qlua, то он будет подключен.

А будет ли он работать уже зависит от того как он написан, какие у него зависимости. В общем случае - будет.
 
Вы это узнаете при загрузке библиотеки.
Если версия ее не та что у VMLua то получите сообщение об ошибке загрузки
 
Цитата
Сергей Че написал:
Будет ли  Lua   виртуальная машина , встроенная в  QUIK , корректно работать с внешними (не встроенными в язык) модулями, которые я установил в свою систему через менеджер модулей   luarocks  ?

К примеру мне нужен модуль для распарсивания JSON данных.

В Linux-консоли...
Код
  $ sudo luarocks install lua - cjson  

В коде торгового робота...
Код
   local  json  =   require (  'cjson'  )
 local  tbl  =   json.decode ( json_string )   -- JSON string -> Lua table 
 local  json_string  =   json.encode ( tbl )   -- Lua table -> JSON strin 
  

Будет такой код работать в торговом роботе?
Я пользую
json = require("dkjson")

Модуль dkjson.lua кладется в основную папку квик.
 
Далее например
-- функция чтения файла в формате json
function read_json(filename)
   local file = io.open(filename, "r")
   if not file then
       return nil
   end
   local content = file:read("*a")
   file:close()
   local data, pos, err = json.decode(content, 1, nil)
   if err then
       return nil
   end
   return data
end  
 
Цитата
Kolossi написал:
Я пользую
json = require("dkjson")

Модуль dkjson.lua кладется в основную папку квик.
Спасибо за идею. Я уже нашёл модуль для парсинга json-строк, который написан на чистом Lua и не требует установки в систему через менеджер luarocks.
Только этот файл надо кидать не в папку квика, а в ту папку, откуда стартует торговый робот, а эта папка может находиться где угодно.
Страницы: 1
Читают тему
Наверх