3

ある種の関数でluaを使用して行を配列に入れるにはどうすればよいのでしょうか。

例えば。FileToArray( "C:/file.txt")?

次のように使用できることはわかっています。var=io.open( "file")Data = var:read()ただし、1行目のみが返され、他の行は返されません。

誰かがこれまたは別の方法を修正する方法を知っていますか?私はluaとファイルシステムのものに不慣れです。

4

2 に答える 2

19

"*a"読み取り関数に渡すことができます。ファイル全体を読み取る必要があります。

local file = io.open("file-name", "r");
local data = file:read("*a")

また、各行を配列に格納する場合。Janeのソリューションと同様に、io:lines()を使用できます。これはイテレータ関数を返します(呼び出しごとに新しい行が返されます)

 local file = io.open("file-name", "r");
 local arr = {}
 for line in file:lines() do
    table.insert (arr, line);
 end
于 2012-10-12T11:47:36.523 に答える
3
local file = io.open("c:\\file.txt")
local tbllines = {}
local i = 0
if file then
    for line in file:lines() do
     i = i + 1
     tbllines[i] = line
    end
    file:close()
else
    error('file not found')
end

詳細については、http://lua-users.org/wiki/IoLibraryTutorialを参照してください。

于 2012-10-12T10:06:03.167 に答える