如何将文本文件加载到类似于表格的变量中的Lua中?
2016-10-15 20:28:44
收藏:0
阅读:287
评论:3
我需要将文件加载到 Lua 变量中。
假设我有
name address email
每个之间有一个空格。我需要将有 x 行这样的文本文件加载到某种对象中 - 或者至少将一行划分为由空格分隔的字符串数组。
Lua 是否能够完成这样的工作,我应该如何做?我对 Lua 相当新,但我在网上找不到任何相关的信息。
原文链接 https://stackoverflow.com/questions/1891473
点赞
stackoverflow用户117069
以下是对uroc答案的补充解释:
local file = io.open("filename.txt")
if file then
for line in file:lines() do
local name, address, email = unpack(line:split(" ")) --unpack函数可以将一个表转成多个不同的变量
--使用这些数据进行相应操作
end
else
end
--注意需要使用分隔字符串的方法,我推荐在http://lua-users.org/wiki/SplitJoin上使用类似于Python的方法
--本文未提供该方法,因为可能存在版权问题
然而,这种方法无法处理名字中包含空格的情况。
2009-12-12 00:55:34
stackoverflow用户41661
您想阅读关于 Lua patterns 的内容,它们是 string library 的一部分。这里有一个示例函数(未经测试):
function read_addresses(filename)
local database = { }
for l in io.lines(filename) do
local n, a, e = l:match '(%S+)%s+(%S+)%s+(%S+)'
table.insert(database, { name = n, address = a, email = e })
end
return database
end
此函数仅抓取由非空格( %S
)字符组成的三个子字符串。真实的函数会进行一些错误检查,以确保匹配模式。
2009-12-12 01:13:31
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在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 模式将字符串(嵌套数组)转换为真正的数组?
如果你能够控制输入文件的格式,最好按照这里所述的使用Lua格式存储数据。
如果不能控制,使用io库打开文件,然后使用string库:
local f = io.open("foo.txt") while 1 do local l = f:read() if not l then break end print(l) -- 使用string库来分割字符串 end