在 Lua 上读取文件

我正在为学院的Lua项目工作,但这是我第一次看到Lua,所以我不知道我的老师要我做什么。

我需要读取一个文件,我们必须说“text.txt”,其中其数据是这样组织的:

entry
{
- -
name =“John”,
- -
sex =“M”或“F”,
- -
年龄= 20,
- -
}

然后我需要将这些数据放入数组中,以便稍后使用它们。

是否有人知道如何做,可以帮助我完成这个代码?

点赞
用户795380
用户795380

这种格式是 Lua 语法的子集,因此只要你允许使用某些库函数,解析起来应该相当容易。

关于文件的格式:f {...}f({...} 的语法糖,作为函数调用。 大括号中的其他内容是注释(以 -- 开头)和表字段(age = 20)。

因此,例如以上示例(选择 "M" 的地方),将解析为函数调用 entry({name = "John", sex = "M", age = 20}),这是有效的 Lua 代码,可以使用标准库中的函数 load(string)loadfile(path) 进行解析。


要实际提取数据,您需要按照以下方式进行操作:

local filecontents = [the contents of your file as a string]
local entries = {}
do
  -- 定义一个函数,我们的数据作为代码将调用它与其表相关联
  -- 它的工作只是将其收到的表添加到我们的数组中。
  local function entry(entrydata)
    table.insert(entries, entrydata)
  end

  -- 将我们的数据作为 Lua 代码加载
  local thunk = load(filecontents, nil, nil, {entry = entry})
  thunk()
end
2014-05-01 22:31:56