Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何读取包含lua表的配置文件_Lua - Fatal编程技术网

如何读取包含lua表的配置文件

如何读取包含lua表的配置文件,lua,Lua,我是卢阿的新手。我有一个关于从文件中读取表的查询。 我有一个lua表格格式的配置文件: 例如: 如何读取此文件并访问配置文件参数?如果要使用其他Lua脚本读取配置文件: configdata=require(“configfile”) 请注意,“require”只能加载Lua文件。 另外,在使用“require”时不要包含“.lua”扩展名。您只需require应用程序源中的配置文件即可 local config = require "config" 包含未检查代码的配置文件是个坏主意。小心这

我是卢阿的新手。我有一个关于从文件中读取表的查询。 我有一个lua表格格式的配置文件: 例如:


如何读取此文件并访问配置文件参数?

如果要使用其他Lua脚本读取配置文件:

configdata=require(“configfile”)

请注意,“require”只能加载Lua文件。
另外,在使用“require”时不要包含“.lua”扩展名。

您只需
require
应用程序源中的配置文件即可

local config = require "config"

包含未检查代码的配置文件是个坏主意。小心这些您忘记了
},
关闭第一个“param1”表
require
接受模块名,而不是文件名。@lhf是的。我已经忘记了。修正了,你的“艰难之路”完全是废话。您可以逐行读取文件并重新连接(二次速度慢!只需打开文件并
:读取“*a”
–您不会更改任何内容)。然后您
loadstring
结果(这是一个您可以随时调用的函数),但立即调用该结果,因此首先包装内部代码,将实际代码作为函数分配给全局变量
configData=loadfile“config.lua”
与您的5行代码具有相同的效果,没有任何废话。@没有人认为您的评论方式是一派胡言。你也可以建议我使用“:read“*a”而不是io.lines,不要试图侮辱我。此外,在称之为愚蠢之前,请阅读“硬”模式背后的原因。我是通过书本而不是通过网络学习Lua的。因此,我编写代码的方式可能与你的有很大不同,但这并不意味着你应该用这种方式表达你的沮丧。这个网站是用来学习的,而不是因为别人写了不同的代码而说他愚蠢。但是thx,我将使用“:read“*a”代替(Side branch:)IMHO调用“意外二次”代码“彻头彻尾的废话”就足够了。你似乎把这件事当成了个人的事情,这并不是你想要的效果:对不起。要查看重复连接有多糟糕,请尝试
localc=“”;对于i=1,1e6 do c=c...“end
vs.
localt={};对于i=1,1e6不[i]=“.”结束;本地c=表。concat(t)
。两者都完成了相同的连接1M个字符的工作,但第二个字符需要约0.5秒,第一个字符需要超过3分钟!(看我为什么说这是废话?)所以:当在循环中串联时,累加到一个表中&
table.concat
末尾!…(或者尽可能避免所有的连接,例如一次读取所有内容。)我想我确实看到了代码的用途(存储一个可以调用以获取配置结构副本的函数),这就是我第一条评论的其余部分—
load
loadfile
已经给了您一个函数<代码>加载(“foo=function()return 23 end”)()和
foo=load(“return 23”)
做(本质上)相同的事情。因此,同样不需要包装东西,只需使用
loadfile
提供的功能,将其分配到您想要的位置,然后跳过阅读文件等的所有麻烦。@我不理解。以后我将使用:改为“*a”。
local config = require "config"