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

local file=ioopen("sthtxt")

local line_no=1

for line in file:lines() do

_G['x'line_no]=tonumber(line)

end

以上就是关于lua 怎么读取txt文件最后一行内容全部的内容,包括:lua 怎么读取txt文件最后一行内容、lua 语言如何 读取文本的每一行数字值,把每行得到的数字赋予给x1,x2,x3,x4,x5等、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存