【发布时间】:2017-03-24 02:10:31
【问题描述】:
我的 array2d 有一些问题。我实际上想要计划有刷新命令。
我在 data.txt
上的数据test1:30:1
test2:40:2
所以每当我调用函数 ReadData。它会向我的 Array2d 发送类似这样的信息:
line_data = {{"test1", "30", "1"},
{"test2", "40", "2"}}
但问题是我每次调用该函数。它总是会添加相同的数据,当我做一些事件时,我想只是刷新或替换。 我的代码
line_data = {}
function ReadData()
local file = io.open("data.txt", "r")
for line in file:lines() do
line_data[#line_data+1] = { line:match('([^:]+):(%d+):(%d+)') }
end
end
也许你们可以帮助我解决这种情况?
【问题讨论】:
-
这个一般不能回答。你如何获取数据?你怎么知道一条线是不是新的?我可以不由自主地想到两个简单的情况: 一个新行被简单地附加到文件中,或者您可以通过它们的开头(“标题”)来区分这些行:test1、test2、testN。是这样吗?
-
糟糕,这是
line_data = {}。实际上在开头有 null 。每当我尝试调用函数读取时,我只是将它声明为数组,以便成为一个包含值的保存数组 -
循环上的这一行 `line_data[#line_data+1] = { line:match('([^:]+):(%d+):(%d+)') }。它将创建一个包含已按 line:match 拆分的值的数组。
-
是的,这很清楚,它不会改变任何东西。每次调用 ReadData 时,旧数据也会被附加。正如我所说,您需要澄清在哪些情况下会出现新数据。告诉我们更多关于您的问题的信息,展示一个最低限度的工作示例。向我们展示完整的代码,除了基本的行之外,所有的代码都被删除了。现在还不清楚您何时、多久以及在什么情况下调用 ReadData。
标签: arrays multidimensional-array lua lua-table