2017-04-20 8 views
0

辞書から複数のファイル名(例えば "Data/lua_files")を手動で追加せずにC++文字列にロードしたい。たとえば、新しいファイルを追加するたびに、コードを追加せずにプログラムを起動するときに使用できるはずです。現在私はSol2.0を使用しています。C++/Lua - 複数のluaファイル名をC++文字列にロードする[自動]

すべてのファイル名を新しい.txtファイルに保存できますか?(luaスクリプトを使用していますか?) これをアーカイブする方法はありますか?

私はGoogleのを確認したが何も

感謝を見つけるdidntの!

答えて

1

"辞書" あなたはLuaのテーブルを意味したか:そして、それはtable.concat(fileNames, ",")と同じくらい簡単です

fileNames = { 
    "file1.txt", 
    "file2.txt", 
    "file3.txt" 
} 

。それは文字列を返します。グローバル変数に保存します。

fileNamesString = table.concat(fileNames, ",") 

次に、Solを使用してC++側から読み込みます。私はそれが余分なステップを通過する必要があるかどうか疑問に思います。図書館がダイレクト・テーブル・アクセスをサポートしていると思いました。それを念頭に置いて、それだけで十分でしょう:

sol::lua_state lua; 
// read your script file here 

for (std::string const& fileName : lua["fileNames"]) { 
    // do your operation 
} 
+0

@AutobahnPolizeiああ、大丈夫です。だから、すべてのluaスクリプトをフォルダからロードしたいのですか? Lua側またはC++側から? (誰が 'ls'の同等機能を実行するのでしょうか) –

+0

はい、C++のString/C++側(?)にあります。新しい.luaファイルを作成するたびに、新しいファイル名を自動的に追加する必要があります。 – AutobahnPolizei

+0

@AutobahnPolizeiさて、あなたは 'Boost.Filesystem'のようなものが必要になるでしょう。これはC++の標準機能ではありません。 –

関連する問題