本文介绍了如何让我的 add 命令找到第一个变量和第二个变量的值,然后将它们加在一起?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
vars = {}值 = {}函数打开(文件)lex(文件)结尾功能 lex(文件)本地数据 = io.open(file, "r")对于数据中的字符:lines() 做- 打印如果 char:sub(1, 6) == "print:" 然后打印(字符:子(7))结尾- 整数如果 char:sub(1, 2) == "V:" 那么vars [#vars + 1] = char:sub(3, 5)如果 char:sub(6, 6) == "=" 那么values [#values + 1] = char:sub(7)结尾--print("NAME:"..vars [#vars]..", ".."VALUE:"..values [#values])结尾- 添加如果 char:sub(1, 4) == "add:" 然后如果 char:sub(5, 7) == vars[#vars] 那么如果 char:sub(8, 8) == "," 然后如果 char:sub(9, 11) == vars[#vars] 那么打印(值[#values] + 值[#values])--print(vars[#vars])结尾结尾结尾结尾结尾--调试目的--[[对于 k, v 成对 (vars) 做打印(k,v)结尾对于 b,a 成对(值)做打印(b,a)结尾--]]结尾函数运行()虽然是真的print("打开文件")文件 = io.read()打印(文件名:"..文件)打印("")lex(文件)打印("")结尾结尾跑()
基本上它说--Add"的地方我希望它查找我们用我们在文本文件中写下的名称设置的变量,然后查找我们使用相同名称设置的另一个变量,例如:V:Var=12 (nextline) V:Vr2=10 (nextline) add:Var,Vr2,然后将设置的值相加
解决方案
您走在正确的轨道上.我要做的更改特别是将 V: 之后的内容作为 vars 表中的键,并将 = 之后的内容设置为值,因此:
如果 char:sub(1,2) == "V:" 和 char:sub(6, 6) == "=" 那么vars[char:sub(3,5)] = tonumber(char:sub(7))结尾
然后,您需要为 add 函数做的就是:
function add_vars(一,二)返回变量[一] + 变量[二]结尾
至少,我想我明白你想要什么.如果不是,您需要更详细地了解您将获得什么以及您期望什么.
vars = {}
values = {}
function open(file)
lex(file)
end
function lex(file)
local data = io.open(file, "r")
for char in data:lines() do
--Print
if char:sub(1, 6) == "print:" then
print(char:sub(7))
end
--Integer
if char:sub(1, 2) == "V:" then
vars [#vars + 1] = char:sub(3, 5)
if char:sub(6, 6) == "=" then
values [#values + 1] = char:sub(7)
end
--print("NAME:"..vars [#vars]..", ".."VALUE:"..values [#values])
end
--Add
if char:sub(1, 4) == "add:" then
if char:sub(5, 7) == vars[#vars] then
if char:sub(8, 8) == "," then
if char:sub(9, 11) == vars[#vars] then
print(values[#values] + values[#values])
--print(vars[#vars])
end
end
end
end
end
--Debug purposes
--[[
for k, v in pairs(vars) do
print(k, v)
end
for b, a in pairs(values) do
print(b, a)
end
--]]
end
function run()
while true do
print("Open a file")
file = io.read()
print("File name:"..file)
print("")
lex(file)
print("")
end
end
run()
解决方案
You're on the right track. The changes I would make would specifically be to put what comes after V: as a key in the vars table, and set what comes after = as the value, so:
if char:sub(1,2) == "V:" and char:sub(6, 6) == "=" then
vars[char:sub(3,5)] = tonumber(char:sub(7))
end
Then, all you have to do for your add function is this:
function add_vars(one, two)
return vars[one] + vars[two]
end
At least, I think I understand what you're wanting. If it's not, you'll want to go into more detail about what you are getting and what you're expecting.
这篇关于如何让我的 add 命令找到第一个变量和第二个变量的值,然后将它们加在一起?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!