Lua - 解析 .txt 文件中的文本并存储数值。

当我尝试运行我的代码时,我收到以下错误:

lua:readFile.lua:7: attempt to call method 'split' (a nil value)

我正在自学Lua并做一些练习。我试图解析文本文件中的各个值,然后对它们进行操作。我可以打开文件,如果不尝试解析值,我可以打印内容。

我已经单独尝试过:

dollars, tickets = line:split(" ")
dollars, tickets = line:split("(%w+)", " ")

此外,我还尝试了其他几个迭代,但现在无法回忆起。

这是我的代码:

myfile = io.open("C:\\tickets.txt", "r")

if myfile then
print("True")    --test print
for line in myfile:lines() do
    local dollars, tickets = unpack(line:split(" "))
    print(dollars)
end
end
print("Done")  --test print
myfile:close()

这是tickets.txt文件的全部内容:

250 5750

100 28000

50 35750

25 18750

我显然在split方法中缺少了一些东西,但我不知道足够多的知识来知道是什么。

问候。

点赞
用户83497
用户83497

Lua 的字符串库并没有包含一个 'split' 函数,你需要自行实现一个(Lua wiki 上有例子),或使用 Lua 的模式匹配功能来解析字符串。例如,你可以这样做:

local dollars, tickets = line:match("(%d+) (%d+)")
2012-09-21 12:36:24
用户107090
用户107090

如果你只想从一个文件中读取数字,并且不想强制每行都只有两个数字,你可以使用以下代码:

while true do
  local dollars,tickets = myfile:read("*n","*n")
  if dollars==nil or tickets==nil then break end
  print(dollars)
end
2012-09-21 12:59:55