3

我正在尝试匹配文本文件中一行文本上的三段数据并将它们存储在表元素中。每行看起来像这样:

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)

我究竟做错了什么?

4

1 回答 1

6

错误在行

data[i] = line

这一行使 data[i] 成为一个字符串变量,它不能有其他字符串索引到它。将该行更改为:

data[i] = {}

一切正常。

于 2014-05-12T10:29:30.707 回答