Lua - 从文本文件解析并存储不同长度的值
2013-5-19 23:34:3
收藏:0
阅读:119
评论:4
我是 Lua 编程的初学者,在阅读文本文件并尝试将其存储在数组中方面遇到了问题。我知道已经存在这样的主题,但我想知道如何存储具有不同数量数字的行。例如:在文本文件中:
1 5 6 7
2 3
2 9 8 1 4 2 4
我该如何从中制作一个数组?我发现的唯一解决方案是具有相同数量的数字。
点赞
用户1576117
你可以逐个字符解析文件。当一个字符是数字时,将其添加到缓冲字符串中。当它是一个空格时,将缓冲字符串添加到一个数组中,并将其转换为数字。如果它是一个换行符,则与空格相同,但同时切换到下一个数组。
2013-05-19 23:38:48
用户1847592
local tt = {}
for line in io.lines(filename) do
local t = {}
for num in line:gmatch'[-.%d]+' do
table.insert(t, tonumber(num))
end
if #t > 0 then
table.insert(tt, t)
end
end
local tt = {}
-- 从文件中逐行读取
for line in io.lines(filename) do
local t = {}
-- 通过正则表达式匹配数字,将数字转换成 tonumber 类型并加入 t 表中
for num in line:gmatch'[-.%d]+' do
table.insert(t, tonumber(num))
end
-- 如果 t 表不为空,将其加入 tt 表中
if #t > 0 then
table.insert(tt, t)
end
end
2013-05-19 23:40:22
用户2303714
t = {}
index = 1
for line in io.lines('file.txt') do
t[index] = {} -- 初始化一个二维数组
for match in string.gmatch(line,"%d+") do -- 匹配所有数字
t[index][ #t[index] + 1 ] = tonumber(match) -- 将数字添加到数组中
end
index = index + 1 -- 下一行
end
你可以通过下面的代码查看输出
for _,row in ipairs(t) do
print("{"..table.concat(row,',').."}")
end
这将展示
{1,5,6,7}
{2,3}
{2,9,8,1,4,2,4}
2013-05-20 02:19:45
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
假设您想要生成的 lua-table(而不是数组)看起来像这样:
那么您需要执行以下代码:
local t, fHandle = {}, io.open( "filename", "r+" ) for line in fHandle:read("*l") do line:gmatch( "(%S+)", function(x) table.insert( t, x ) end ) end