如何在LUA中将一个字符串添加到给定行的末尾?

我有一个有3个参数的工作函数。

function file.append(filename,linha,text)
     filename = file.checkname(filename)
     if file.exists(filename)then

     local hFile = io.open(filename,“r”) - 读取。
     local lines = {}
     local restOfFile
     local lineCt = 1
     for line in hFile:lines()do
     if(lineCt == linha)then  - 这是修改的行吗?
         lines [#lines + 1] = line ..“”.. text -通过将字符串附加到末尾修改行。
         restOfFile = hFile:read(“* a”)
         break
     else
         lineCt = lineCt + 1
         lines [#lines + 1] = line
     end
     end
     hFile:close()

     hFile = io.open(filename,“w”) - 写入文件。
     for i,line in ipairs(lines)do
         hFile:write(line,“\ n”)
     end
     hFile:write(restOfFile)
     hFile:close()

     end  - end文件存在()
end

这个函数的问题是它读取整个.txt文件,然后逐行重写,将“text”附加到指定的“line”,其他所有内容不改变。

因为它读取然后重写整个.txt文件,它可能无法写入文件,使其为空。这很少发生,但当它发生时,我会失去一切。

我需要一个函数,只需在给定行的末尾附加而不重新编写整个文件即可。有谁可以帮我?

点赞