我试图在文本文件中的一行文本上匹配三个数据,并将它们存储在表格元素中。每一行看起来像这样:
0.277719 0.474610 This
0.474610 0.721241 is
0.721241 1.063209 test
我有一个本地表来保存文本行,我正在尝试按如下方式分配数据。
local data = {}
local file = io.open( "audio/audio.txt", "r" )
local i = 1
for line in file:lines() do
data[i] = line
data[i].start, data[i].out, data[i].name = string.match( line, '(%S+)%s*(%S+)%s*(%S+)' )
i = i + 1
end
data[i] = line
部分工作正常。下一行没有。
我得到的是data[i].start, data[i].out, data[i].name = string.match( line, '(%S+)%s*(%S+)%s*(%S+)' )
行上的以下错误:
attempt to index field '?' (a string value)
我做错了什么?
答案 0 :(得分:6)
错误在行
中data[i] = line
这一行使data [i]成为一个字符串变量,不能将其他字符串索引到它。将该行更改为:
data[i] = {}
一切正常。