2017-03-10 4 views

Antwort

4

Sie können die Zeichenfolge durch load oder loadstring (je nach Lua-Version) laufen, die die Tabelle für Sie suchen zurück:

local t = "{{2173,1},{2160,5}}" 
t = (loadstring or load)("return "..t)() 
print(#t) -- 2 
+0

Darf '' loadstring oder load'' sein? –

+0

hat auch funktioniert !! Und sicherlich auf eine einfachere Art und Weise !! Nett! –

+0

Auf Lua 5.1 '(load oder loadstring)' ergibt sich 'load' und' load' erwartet eine Funktion als Argument. 'load (" return ")' führt zu einem Laufzeitfehler. –

2

Hier ist eine Ad-hoc-Lösung für den Eingangs Sie gaben:

local s = "{{2173,1},{2160,5}}" 
local t = {} 
local n = 0 
for a,b in s:gmatch("(%d+),(%d+)") do 
     n = n + 1 
     t[n] = {a,b} 
end 
for k,v in ipairs(t) do print(k,v[1],v[2]) end 
+0

hat funktioniert !! Vielen Dank!! –

+1

@ LuaTeam91, gut. Übrigens, ich hätte lieber einen anderen Benutzernamen ... – lhf

Verwandte Themen