local t = "{{2173,1},{2160,5}}"
print(#t) -- 19?? wrong
Wie konvertiert man, um in Zahlen erscheinen?Konvertieren Tabellenzeichenfolge in die tatsächliche Tabelle
local t = {{2173,1},{2160,5}}
print(#t) -- 2 correct
local t = "{{2173,1},{2160,5}}"
print(#t) -- 19?? wrong
Wie konvertiert man, um in Zahlen erscheinen?Konvertieren Tabellenzeichenfolge in die tatsächliche Tabelle
local t = {{2173,1},{2160,5}}
print(#t) -- 2 correct
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
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
hat funktioniert !! Vielen Dank!! –
@ LuaTeam91, gut. Übrigens, ich hätte lieber einen anderen Benutzernamen ... – lhf
Darf '' loadstring oder load'' sein? –
hat auch funktioniert !! Und sicherlich auf eine einfachere Art und Weise !! Nett! –
Auf Lua 5.1 '(load oder loadstring)' ergibt sich 'load' und' load' erwartet eine Funktion als Argument. 'load (" return ")' führt zu einem Laufzeitfehler. –