Я использую LuaJava, а также код C для Lua. Я хочу знать, как я могу загрузить модуль Lua в Lua как String. Другими словами, я сначала конвертирую файл .lua в String. Затем я хочу загрузить содержимое этой строки в Lua? Я вижу, что есть функция loadstring, но не уверен, как это будет вызвано. Я не хочу, чтобы Lua искал файловую систему для этого файла, я нашел файл, преобразовал его в строку, а затем я хочу загрузить строковую версию содержимого файла? И я также хочу знать, если после вызова loadstring (s), если модуль останется доступным без перезагрузки из файла для последующих вызовов функций. Благодарю.Как загрузить модуль Lua в виде строки вместо файла?
ответ
Если вам необходимо загрузить/скомпилировать строку из LuaJava, вы можете использовать функцию LuaState.LloadString(String source)
.
Если вы не хотите загружать «модуль» из источника несколько раз, вам необходимо назначить ему имя и сохранить некоторый флаг в таблице. Вы даже можете обеспечить «разгрузку», чтобы вы могли снова загрузить модуль из источника. Он может быть повторно реализован в Lua следующим образом:
do
local loadedModules = {} -- local so it won't leak to _G
function loadModule(name, source)
if loadedModules[name] then return loadedModules[name] end
loadedModules[name] = assert(loadstring(source))() or true
end
function unloadModule(name)
loadedModules[name] = nil
end
end
Я не уверен, что понял вопрос, но здесь идет:
local f = io.open(filename)
local s = f:read '*a' -- read the entire contents of the file
f:close()
assert(loadstring(s))() -- parse and run string `s` as Lua code
Я уверен, что он говорит на языке хозяина, а не в Lua. –
Да, то, что я точно пытаюсь сделать, это прочитать файл Lua в качестве ресурса String в приложении для Android. Поэтому Lua никогда не прочитает файл, а возьмет только строку. Поэтому я предполагаю, что мне нужно знать, как запускать loadstring (s) из LuaJava или языка C. – Androider
Кроме того, мне нужно подтвердить, что после запуска вышеприведенного выше кода последующий код lua может потребовать «module_defined_in_filename» успешно, не ища этот модуль в файле. – Androider
- 1. Как загрузить пользовательский модуль в Lua?
- 2. Как загрузить и выполнить lua-файл из другого lua-файла
- 3. Как загрузить строку JavaScript в виде файла
- 4. Как загрузить текстовый файл в виде табличной переменной в Lua?
- 5. Lua импортировать строки из файла
- 6. Загрузить изображение в виде файла
- 7. Чтение строки в виде строки таблицы в Lua
- 8. Lua: запись шестнадцатеричных значений в виде двоичного файла
- 9. Как создать модуль Lua внутри модуля Lua в C?
- 10. Сохранение файла в виде строки в Mongodb
- 11. В php, как загрузить txt-файл в виде строки?
- 12. не удалось загрузить модуль DLL с в Lua
- 13. Как похудеть попробуйте загрузить пакеты в Lua?
- 14. Удалить из файла строки в Lua
- 15. Как добавить определение функции в Lua, не требуя загрузки файла?
- 16. загрузить файл в lua
- 17. Как загрузить файл с именем в виде строки в Java?
- 18. Как загрузить модуль mongojs
- 19. Как загрузить таблицу из файла в Torch/Lua?
- 20. PHP: как загрузить файл с другого сервера в виде строки?
- 21. как загрузить JSon объект вместо JSON файла
- 22. Загрузить файл конфигурации из потока вместо файла
- 23. Lua многопоточный модуль
- 24. Как включить модуль Lua в сборку
- 25. модуль не нравится при вызове файла Lua в ios
- 26. файла загрузить массив байтов в виде файла в JavaScript/ExtJS
- 27. Передача строки в rubocop в виде файла
- 28. данные файла, кажется, повреждены при чтении файла в виде строки
- 29. Как загрузить файл kml в виде строки в Openlayers 3?
- 30. Как загрузить веб-представление в виде строки в ListView?
Спасибо. У меня есть еще одна проблема, которая вызывает функцию Lua из java после ее загрузки и получения значения результата. Пожалуйста, взгляните на это: http://stackoverflow.com/questions/8611948/lua-getting-result-back-in-luajava-from-lua-function-call – Androider