我使用LuaJava和Lua的C代碼。我想知道如何將Lua模塊作爲字符串加載到Lua中。換句話說,我首先將.lua文件轉換爲字符串。然後我想把這個字符串的內容加載到Lua中?我看到有一個loadtring函數,但不知道如何調用它。我不想讓Lua搜索這個文件的文件系統,我找到了這個文件,將它轉換爲一個字符串,然後我想加載字符串版本的文件內容?而且我也想知道在調用loadtring之後,如果模塊保持可用而不需要從文件中重新加載以用於隨後的函數調用。謝謝。如何將Lua模塊作爲字符串加載而不是文件?
4
A
回答
3
如果您需要加載/編譯從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
1
我不知道我理解的問題,但這裏有雲:
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
相關問題
- 1. Lua C api:如何加載定義爲模塊的lua文件?
- 2. 從字符串而不是從文件加載模板
- 3. 從字符串而不是文件加載Rails視圖模板
- 4. 在php中,如何將txt文件作爲字符串加載?
- 5. 如何將字符串下載爲.csv文件,而不將字符串寫入文件並從文件讀取?
- 6. 使用模塊名稱加載模塊而不是文件名
- 7. NaiveScript:如何使用xml文件構建模塊,而不是模板字符串
- 8. Lua的模式 - 如何將字符串
- 9. 將字符串作爲文件下載
- 10. 如何將文件加載爲文本(字符串)?
- 11. 如何將HTML字符串加載到nodejs模塊phantomjs-node
- 12. 從字符串內容加載Dojo類而不是文件
- 13. TinyXml可以從字符串而不是文件加載Xml嗎?
- 14. 追加HTML編碼字符串作爲HTML,而不是文本
- 15. OSX加載dylib Lua模塊
- 16. 如何在Openlayers 3中將字符串加載爲kml文件?
- 17. 如何將模塊的文件名作爲字符串或變量返回?
- 18. Lua將字符串保存到文件
- 19. 將lua字符串拆分爲字符
- 20. 將字符串拆分爲「'」而不是「?」 「
- 21. FPDFI - setSourceFile作爲字符串而不是文件
- 22. Matplotlib svg作爲字符串而不是文件
- 23. 如何將數字反轉爲整數而不是字符串?
- 24. RabbitListener返回字符串作爲ASCII而不是字符串
- 25. C++ wstring文件,而不是字符串
- 26. 在Java中,如何將XML解析爲字符串而不是文件?
- 27. 如何看待字符串作爲一個字符串,而不是在PHP
- 28. DirectoryEntry字符串作爲文字而不是格式化字符串?
- 29. 從字符串加載而不是文檔/網址
- 30. 如何將JSON字符串解碼爲字符串,而不是unicode
謝謝。我有另一個問題,它在加載並獲取結果值後從java調用Lua函數。請看看這個:http://stackoverflow.com/questions/8611948/lua-getting-result-back-in-luajava-from-lua-function-call – Androider