文本文件到Lua数组表

时间:2015-04-20 14:41:23

标签: arrays file-io lua lua-table file-read

我需要将文本从文本文件/字符串传输到具有2个位置向量的表。像这样:

文字档案:

Gustavo 20
Danilo 20
Dimas 40

Names = {{Gustavo,20},{Danilo,20},{Dimas,40}}

需要帮助才能做到这一点。

2 个答案:

答案 0 :(得分:2)

您可以使用io.lines()

vectorarray = {}
for line in io.lines(filename) do
  local w, n = string.match(line, "^(%w+)"), string.match(line, "(%d+)$")
  table.insert(vectorarray, {w, n})
end

当然,这是假设它是行的绝对结束和绝对开始,并且每行只有这两个选项。如果您在许多其他地方使用文件名,那么您可以为文件名设置一个全局变量并每次调用它,例如:

arrayfile = "C:/arrayfile.txt"

无论哪种方式,请确保在文件名中将正确的路径放在引号中。

答案 1 :(得分:2)

Josh答案的较短变化直接将结果放入表中。这匹配字母名称后跟至少一个空格和数字,但您可以根据需要更改模式:

Names = {}
for line in io.lines(filename) do
  Names[ #Names+1 ] = {line:match('(%a+)%s+(%d+)')}
end