lua 怎么读取txt文件最后一行内容

lua 怎么读取txt文件最后一行内容,第1张

【1】最简单的 就是不考虑文本大小,一次性读入,然后正则匹配

local text = [[
lua 怎么读取txt文件最后一行内容
1 让iolines走到最后然后再读取可以么?
2 或者怎么用find方法找出符合条件的最后一个字符串后面的内容?
3 就是怎么找到正则表达式最后一个匹配到的结果?
]]
local path = [[d:\1txt]]
--[==[
assert(not ioopen(path, "r"), "Temp file already exists !")
-- 写测试文件
local file = ioopen(path, "w+")
file:write(text)
file:close()
--]==]
local file = ioopen(path, "r+");
local text = file:read("all");
local regex = "([^\n]+)$"       -- 匹配最后一行,最后一行为空行,则找不到
local regex = "([^\n]+)[\n]$"  -- 匹配最后一行有效文本 $表示匹配字符串结尾位置
for line in stringgmatch(text, "([^\n]+)[\n]$") do
    print(line)
end
file:close();

【2】如果文件超大,内存不够一次性读入文件,效率低点可以 按行遍历,找到行,在检查条件等等

考虑效率 应该 利用文件指针,先计算文件大小,然后分析出 读入文件块的大小,比如说 按8K读入,然后从文件尾向前推8K,一次性读入该字块,然后搜索换行符,如果找不到 继续递推读入直到找到换行,如果有换行,就转换成第一步 正则匹配

【附录】

-- 文件指针  *** 作
local cur_pos = file:seek()
file:seek("end")
file:seek("set", pos)
-- 由于单行读取遍历 
local file = ioopen(path, "r+");
for line in file:lines() do
    last_line = line
end

以上就是关于lua 怎么读取txt文件最后一行内容全部的内容,包括:lua 怎么读取txt文件最后一行内容、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9278519.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存