RGSS2を知る(29)

TableクラスのMarshal。

t = Table.new(2,3,4)
c = 1
for i in 0..1
  for j in 0..2
    for k in 0..3
      t[i,j,k] = c
      c += 1
    end
  end
end
open("c:\\test.txt","w+b") do |fh|
  fh.write(Marshal.dump(t))
end

結果はこんなかんじ。

04 08 75 3A 0A 54 61 62 6C 65 
49 
03 00 00 00 # 次元数
02 00 00 00 # x
03 00 00 00 # y
04 00 00 00 # z
18 00 00 00 # 総数
01 00 # 0,0,0
0D 00 # 1,0,0
05 00 # 0,1,0
11 00 # 1,1,0
09 00 # 0,2,0
15 00 # 1,2,0
02 00 # 0,0,1
0E 00 # 1,0,1
06 00 # 0,1,1
12 00 # 1,1,1
0A 00 # 0,2,1
16 00 # 1,2,1
03 00 # 0,0,2
0F 00 # 1,0,2
07 00 # 0,1,2
13 00 # 1,1,2
0B 00 # 0,2,2
17 00 # 1,2,2
04 00 # 0,0,3
10 00 # 1,0,3
08 00 # 0,1,3
14 00 # 1,1,3
0C 00 # 0,2,3
18 00 # 1,2,3

隣のアドレスに行くとxが増える。
Z→Yの順に省略できるのだから、まあ妥当なところか。