私は自分のarray2dにいくつか問題があります。私は実際にリフレッシュコマンドを持っている計画したい。luaリフレッシュ/ replace 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
多分あなたたちがこのような状況で私を助けることができますか?
これは一般的に答えられません。どのようにデータを取得しますか?ラインが新しいかどうかはどうやって分かりますか? 2つの単純なケースについて私は自発的に考えることができます: 新しい行が単にファイルに追加されるか、先頭行( "header")で行を区別することができます:test1、test2、testN。これは本当ですか? – pschulz
oops私の悪い、この 'line_data = {}'。実際には最初はヌルです。私はちょうど呼び出し関数を呼び出すしようとするたびに値を含む保存された配列であることを宣言します。 – Han
この行をループ 'line_data [#line_data + 1] = {行:match( '([:] +):(% d +):(%d +) ')}。すでに行:分割で値が分かれている配列を作成します。 – Han