【发布时间】:2012-10-13 19:53:26
【问题描述】:
我想知道如何在某种函数中使用 lua 将一行放入数组中
例如。 FileToArray("C:/file.txt")?
我知道我可以使用: var = io.open("文件") 数据 = var:read() 但它只返回第一行,没有其他行。
有人知道如何解决这个问题或其他方式吗?我是 lua 和文件系统方面的新手。
【问题讨论】:
我想知道如何在某种函数中使用 lua 将一行放入数组中
例如。 FileToArray("C:/file.txt")?
我知道我可以使用: var = io.open("文件") 数据 = var:read() 但它只返回第一行,没有其他行。
有人知道如何解决这个问题或其他方式吗?我是 lua 和文件系统方面的新手。
【问题讨论】:
您可以通过"*a" 来读取函数,它应该读取整个文件:
local file = io.open("file-name", "r");
local data = file:read("*a")
如果你想将每一行存储在一个数组中。就像简的解决方案一样,您可以使用 io:lines () - 返回迭代器函数(每次调用都会给你一个新行)
local file = io.open("file-name", "r");
local arr = {}
for line in file:lines() do
table.insert (arr, line);
end
【讨论】:
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 了解更多信息。
【讨论】: