Lua——解析.txt文件中的文本并存储值
我尝试运行代码时收到以下错误:Lua——解析.txt文件中的文本并存储值,lua,Lua,我尝试运行代码时收到以下错误: lua:readFile.lua:7: attempt to call method 'split' (a nil value) 我正在自学Lua并做一些练习。我试图解析文本文件中的各个值,然后对它们进行处理。我可以打开文件,如果我不尝试解析这些值,我可以打印内容。 我分别尝试过: dollars, tickets = line:split(" ") dollars, tickets = line:split("(%w+)", " ") 还有其他几个
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 575010028000
5035750
2518750 很明显,我在分割方法中遗漏了一些东西,但我不知道该怎么做
注意。Lua中的字符串库不包含“拆分”函数。您必须自己实现一个(LuaWiki上有一些示例),或者使用Lua的模式匹配功能来解析这些片段。例如,您可以这样做:
local dollars, tickets = line:match("(%d+) (%d+)")
如果您只想从文件中读取数字,而不想强制每行数字为两个,则可以使用以下代码:
while true do
local dollars,tickets = myfile:read("*n","*n")
if dollars==nil or tickets==nil then break end
print(dollars)
end
我想我不明白。从Lua wiki页面[链接]。这里的split函数不是我应该使用的吗?在任何情况下,我都使用了您提供的代码,它返回了我所需要的,所以谢谢您。您可以使用这里描述的拆分函数,但您需要手动将其添加到字符串库中。在该页面的大约1/4处,它们显示了一些不同的split实现。您可以将其中一个复制到Lua文件中,并将函数放入字符串表:string.split=。只需将Lua文件插入脚本中即可。请确保您选择了一个与您正在使用的Lua版本兼容的拆分实现。谢谢。您提供的代码也可以工作。我已经把迈克的答案标为答案了,但我还没有冷静到可以投你的一票。无论如何,非常感谢。