gl5_progのメモ

自分のためのメモとかまとめとか

Luaのテーブルをファイルに保存する。

保存データとしてLuaのテーブルをそのままLuaファイルで書き出せると便利です。
でも、そういう機能は標準には無いのでここにあったものをいくつか試してみました。

Save Table To FilePickle Tableは入れ子のテーブルがテーブルへのインデックスに変わってしまい、扱いにくそうだったので、Table Persistenceを使うことにしました。

以下書き出し後の結果です。

元テーブルデー

testTable = { aaa='aaadayo', bbb=10, ccc={ inccc='incccdayo', inccc2={ 1, 2, 4, 8, 16 } } }

Save Table To File

return {
-- Table: {1}
{
   ["ccc"]={2},
   ["bbb"]=10,
   ["aaa"]="aaadayo",
},
-- Table: {2}
{
   ["inccc"]="incccdayo",
   ["inccc2"]={3},
},
-- Table: {3}
{
   1,
   2,
   4,
   8,
   16,
},
}

Pickle Table

{{
["ccc"]={2},
["bbb"]=10,
["aaa"]="aaadayo",
},
{
["inccc"]="incccdayo",
["inccc2"]={3},
},
{
[1]=1,
[2]=2,
[3]=4,
[4]=8,
[5]=16,
},
}

Table Persistence

-- Persistent Data
local multiRefObjects = {

} -- multiRefObjects
local obj1 = {
	["ccc"] = {
		["inccc"] = "incccdayo";
		["inccc2"] = {
			[1] = 1;
			[2] = 2;
			[3] = 4;
			[4] = 8;
			[5] = 16;
		};
	};
	["bbb"] = 10;
	["aaa"] = "aaadayo";
}
return obj1