我在想如何使用lua中的某种函数将一行数据存入数组中。
例如:FileToArray("C:/file.txt")?
我知道可以使用以下代码:
var = io.open("file")
Data = var:read()
但它只返回第一行,没有其他行。
有人知道如何解决这个问题或有其他方法吗?我是lua和文件系统方面的新手。
你可以将"*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
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