将文本文件转换为Lua数组表

我需要将一个文本文件/字符串转换为具有2个位置向量的表格。像这样:

文本文件:

Gustavo 20 
Danilo 20 
Dimas 40 

表格

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

需要帮助完成此操作。

点赞
用户308010
用户308010

你可以使用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"

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

2015-04-20 20:24:22
用户3735873
用户3735873

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

Names = {}
for line in io.lines(filename) do
  Names[ #Names+1 ] = {line:match('(%a+)%s+(%d+)')}
end
2015-04-21 14:55:52