2017-04-20 93 views
0

我想从字典(例如“Data/lua_files”)中将多个文件名加载到C++字符串中,而无需手动添加它们。例如,当我添加一个新文件时,我应该可以在不添加任何代码的情况下启动我的程序时使用它。目前我使用Sol2.0。C++/Lua - 将多个lua文件名加载到一个C++字符串中[自动]

我可以将所有文件名保存到一个新的.txt文件吗?(带有lua脚本?) 有什么方法可以将其归档吗?

我查过谷歌但没发现任何东西

谢谢!

回答

1

如果 “字典” 你的意思是一个Lua表:

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

然后,它的那么容易,因为table.concat(fileNames, ",")。它会返回一个字符串,然后你可以保存到全局变量中:

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++的标准功能。 –

相关问题