在Lua上读取文件

时间:2014-05-01 21:56:18

标签: arrays file lua

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

我需要阅读一个文件,我们必须说" text.txt",其数据以这种方式组织:

entry
{
--
name = "John",
--
sex = "M" ou "F",
--
age = 20,
--
}

然后我需要将这些数据放在一个数组中,以便以后可以使用它们。

有谁知道怎么做,可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

这种格式是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
  -- define a function that our data-as-code will call with its table
  -- its job will be to simply add the table it gets to our array. 
  local function entry(entrydata)
    table.insert(entries, entrydata)
  end

  -- load our data as Lua code
  local thunk = load(filecontents, nil, nil, {entry = entry})
  thunk()


end