String.match中的捕获次数太多错误[帮助]

时间:2013-10-30 23:29:46

标签: lua corona

我在这一行上收到此错误“捕获太多”:

gM.webServiceUserId,  mute, volume, gM.roundCount,gM.puntajeTotal,gM.tiempo,gM.facebookLogro,gM.twitterLogro,gM.a,gM.b,gM.c,gM.d,gM.e,gM.f,gM.g,gM.h,gM.i,gM.j,gM.k,gM.l,gM.m,gM.n,gM.o,gM.p,gM.q,gM.r,gM.s,gM.t,gM.u,gM.v,gM.w,gM.x,gM.y,gM.z = string.match(saveData, "(%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+) (%d+)")

我的文件共有34个数据。 我想在这里做的是将每一行分配给变量 例如:

on file ( 1,2,3,4,5)
var1=1
var2=2
var3= 3
var4= 4
var5 = 5

当我添加更多变量时,我收到此错误请帮我找到解决方案

我想在这里做的事情是将34个变量保存到1个文件(system.DocumentsDirectory)中, 当游戏关闭时,然后在游戏启动时再次加载它们... 它有效,但有一些变量,但当我添加更多时,我得到了这个错误......

lua代码 corona sdk

1 个答案:

答案 0 :(得分:4)

您可以做的一件事是使用key = value格式以不同方式将数据存储到文件中:

 local saveData = ''
 for k, v in gM do
    saveData = (saveData..k..'='..v..',')
 end
 -- Your code to write the saveData into the save file

之后,您将能够从文件中加载/检索:

 for k, v in string.gmatch(s, "(%w+)=(%d+)") do
    gM[k] = v
 end

请注意,这只适用于gM变量:) 您还需要以gM格式存储静音和音量(gM.mute,gM.volume)。