3

我想知道如何在某种函数中使用 lua 将一行放入数组中

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

我知道我可以使用: var = io.open("file") Data = var:read() 但它只返回第一行,没有其他行。

任何人都知道如何解决这个问题或其他方式?我是 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 回答