我将一个具有混合值(没有用户数据)的表保存到一个文件中。当我试图从该文件恢复表时,我会得到“{”-Errors附近的“出乎意料的符号”。
这里有一个例子:
eTable = {}
eTable.[1] = { [1] = 2, [2] = 3}
eTable.[2] = { [1] = 2, [2] = 9}
eTable.x = { [1] = 12, [31] = "aString", ["wildcard"] = function()something end}
local eTable_as_String = table.tostring(eTable)
local file_hanlder,err = io.open(filename,"w+")
if err then print(err) end -- doesn't raise errors
err = nil
file_hanlder:write(eTable_as_String)
file_handler:flush()现在是关键部分:
loadet_eTable = loadfile(filename) -- "unexpectet Symbol near '{'"
loadet_eTable = dofile(filename) -- "unexpectet Symbol near '{'"其他尝试:
loadet_file_value,err = file_handler:read()
if err then print(err) end -- doesn't raise errors
err = nil
loadet_eTable = loadstring(loadet_file_value) -- "unexpectet Symbol near '{'"我知道loadfile()和dofile()之间的区别,在本例中不是问题。但我不明白这个错误是怎么发生的。
发布于 2014-09-01 07:55:19
您只将表的内容写入文件。作为一个简单的例子,
{[1] = "foo", [2] = "bar"}是无效的Lua代码,您可以在表构造函数前面添加return以返回如下表:
return {[1] = "foo", [2] = "bar"}现在,如果加载并成功运行,表就已经在那里了:
local fun = assert(loadfile(filename))
local t = fun()https://stackoverflow.com/questions/25600352
复制相似问题