【问题标题】:File to Array in LuaLua中的文件到数组
【发布时间】:2012-10-13 19:53:26
【问题描述】:

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

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

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

有人知道如何解决这个问题或其他方式吗?我是 lua 和文件系统方面的新手。

【问题讨论】:

    标签: file io lua


    【解决方案1】:

    您可以通过"*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
    

    【讨论】:

    • 请注意,它只是“*a”,“*all”有效的事实是偶然的:它只查看前 2 个字符。
    • You are absolutely right ,我不知道为什么我写了'*all'
    • 比使用 :lines 更好的是 io.lines("path")。它将在最后一次迭代中关闭文件。
    • 格式中的“rb”是干什么用的?我知道“r”是读取模式,但是“rb”呢?
    • 应该是二进制模式,没必要。我认为lua一定忽略了它。
    【解决方案2】:
    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 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 2021-02-21
      • 2017-04-11
      • 2012-02-07
      • 2012-01-09
      • 2020-05-05
      相关资源
      最近更新 更多