私はLua用にLuaJavaとCコードを使用しています。 LuaをStringとしてどのようにロードできるかを知りたい言い換えれば、私は最初に.luaファイルを文字列に変換しています。私はこの文字列の内容をLuaにロードしたいのですか?私はloadstring関数が表示されますが、これがどのように呼び出されるかわかりません。私はLuaにこのファイルのファイルシステムを検索させたくないので、ファイルを見つけて文字列に変換してから、ファイル内容の文字列バージョンをロードしますか?また、後続の関数呼び出しのためにファイルからリロードせずにモジュールが利用可能なままであるかどうかをloadstring()を呼び出した後に知りたい。ありがとう。ファイルの代わりにLuaモジュールを文字列としてロードするにはどうすればよいですか?
答えて
は、あなたが機能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
は、私が質問を理解していないが、ここに行く:あなたが/ロードLuaJavaから文字列をコンパイルする必要がある場合は
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
私は彼がホスト言語で話していると確信しています、ルアではありません。 –
はい、私が正確にやろうとしていることは、Androidアプリケーションのリソース文字列としてLuaファイルを読み込むことです。したがって、Luaはファイルを読むことはありませんが、文字列を取り込むだけです。ですから、LuaJavaやC言語からloadstringを実行する方法を知る必要があると思います。 – Androider
また、上記のコードを実行した後に、その後のluaコードでファイル内のそのモジュールを探すことなく、 'module_defined_in_filename'を正常に実行できることを確認する必要があります。 – Androider
- 1. 変数の代わりに文字列名を使用するにはどうすればよいですか?
- 2. リテラル文字列の代わりに変数を使用するにはどうすればよいですか?
- 3. 文字数の代わりに文字列を保持しながら、文字列のMAXをグループ化するにはどうすればよいですか?
- 4. JavaScript文字列をJava文字列の代わりにNashornエンジンに渡すにはどうすればよいですか?
- 5. 文字列(ファイルではない)をCSVファイルの行として扱い、その文字列を解析するにはどうすればよいですか?
- 6. Apache fopを使用してUnicode文字を表示するにはどうすればよいですか? 「?」を表示文字の代わりに。
- 7. ヘッダーの代わりにクエリ文字列にアクセストークンを持つLaravel Passportを使用してリクエストを認証するにはどうすればよいですか?
- 8. ファイルからXML文字列を文字列に読み込むにはどうすればよいですか?
- 9. DOMの代わりにHTML文書でjQueryを使用するにはどうすればよいですか?
- 10. .txtファイルを文字列として宣言するにはどうすればよいですか?
- 11. 文字列内の文字列を文字列内で渡すにはどうすればよいですか?
- 12. 文字列の繰り返し文字を検索するにはどうすればよいですか?
- 13. 個々のファイルの代わりにsrcディレクトリを追加するにはどうすればよいですか?
- 14. switch文の代わりに関数ポインタを使用するにはどうすればよいですか?
- 15. 文字列の値とスピナーの文字列を比較するにはどうすればよいですか?
- 16. C++/Lua - 複数のluaファイル名をC++文字列にロードする[自動]
- 17. コンボボックスの値をvbaモジュールの文字列に変換するにはどうすればよいですか?
- 18. HTMLファイルの代わりに文字列テンプレートを使用する
- 19. 特定の文字の後に文字列を切り取るにはどうすればよいですか?
- 20. .luaファイルを実行するにはどうすればよいですか?
- 21. ファイルの代わりにCakePHPのメディアビューから文字列をダウンロードするにはどうすればいいですか?
- 22. 文字列変数をxcodeの文字列と比較するにはどうすればよいですか?
- 23. [[String]]の文字列値を文字列と比較するにはどうすればよいですか?
- 24. 文字列値を別の文字列値と比較するにはどうすればよいですか?
- 25. XSDファイルに対してXML文字列を検証するにはどうすればよいですか?
- 26. ディスクに移動せずに文字列をFileStreamにロードするにはどうすればよいですか?
- 27. RealmSwiftから値を文字列として取り出すにはどうすればよいですか?
- 28. リスト配列の代わりにセットを使用するにはどうすればよいですか?
- 29. DataGridでは、booleanをチェックボックスの代わりに「yes/no」とするにはどうすればよいですか?
- 30. レンジャーにFirefoxの代わりにGoogle ChromeでHTMLファイルを開くにはどうすればよいですか?
ありがとうございます。私はそれがロードされ、結果の値を取得した後、javaからルア関数を呼び出す別の問題があります。これを見てください:http://stackoverflow.com/questions/8611948/lua-getting-result-back-in-luajava-from-lua-function-call – Androider