如何从文件加载表

时间:2014-06-10 06:00:47

标签: lua lua-table

我知道如何在文本文件中编写表格内容并将其恢复。但是在文件中编写自定义表类型的最佳做法是什么?

这是我的情况: 我有一个表格列表f.e. objective1 = {} objective2 = {} objective3 = {} .. 每个目标都有自己的执行函数,它根据条件检查某些条件并执行一些命令。 每个新游戏都选择一组随机的目标并将它们存储在一个数组中Objectives = { [1] = { objective1 , objective3 } } 现在我想保存随机目标数组,然后从文件中加载它们。

是否有可能在表中保存表的名称并按名称还原它们? 在不使用工厂模式或使用索引进行保存的情况下获得解决方案会很棒。

1 个答案:

答案 0 :(得分:0)

如果表中的任何数据不是userdata(例如,SQL或套接字连接或其他库),您可以使用the pickle module将数据写入文件,稍后从那里加载它。

我个人使用不同的pickle library(由 Walter Doekes 撰写)。用法如下:

local TableToStore = { 'a', 'b', 1, {'nested', 'content', {c = 'inside'}} }
pickle.store( 'backupFileName.bak', {TableToStore = TableToStore} )

要恢复数据,我可以简单地使用

dofile "backupFileName.bak"

我会在此之后找回一个名为TableToStore的表。