我尝试运行代码时收到以下错误:
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
我显然在分裂方法中遗漏了一些东西,但我不知道知道什么。
问候。
答案 0 :(得分:3)
如果您只想从文件中读取数字而不想在每行上强制执行它们,则可以使用以下代码:
while true do
local dollars,tickets = myfile:read("*n","*n")
if dollars==nil or tickets==nil then break end
print(dollars)
end
答案 1 :(得分:2)
Lua中的字符串库不包含“拆分”功能。你必须自己实现一个(在Lua wiki上有例子),或者使用Lua的模式匹配功能来解析碎片。例如,你可以这样做:
local dollars, tickets = line:match("(%d+) (%d+)")