Lua table contents separated at equal sign

我正在学习Lua,想在Rainmeter中使用它。 在Rainmeter中,我使用外部txt文件存储皮肤位置,类型如下所示:

pza=A1
pzb=B2
pzc=D3
...(依此类推...)

在我的Lua脚本中,我使用读取的行创建了一个数组。因此,第一行是pza=A1,第二行是pzb=B2,依此类推。 有没有办法仅检查等号后面的值? 所以,以某种方式将pza=A1分离出来,将“pza”作为键获取,“A1”作为值获取?

非常感谢您的帮助!

点赞
用户1431558
用户1431558

我不确定是否理解正确,但尝试像这样使用 line 参数,其中 line 是从文件中读取的行。

local line = "test1=100"

local delim = string.find(line, "=")
key = string.sub(line, 1, delim - 1)
val = string.sub(line, delim + 1, -1)

print("Key: "..key.." Val:"..val)

这将输出:

Key: test1 Val:100

2017-03-29 15:34:57
用户7504558
用户7504558

你可以使用 gmatch 和 patterns:

local s=[[
    pza=A1
    pzb=B2
    pzc=D3
]]

local t= {}
for k,v in s:gmatch('(%w+)=(%w+)') do
  t[k]=v
  print(k,t[k])
end

结果:

pza A1
pzb B2
pzc D3
2017-03-29 15:46:07