dragon spx

2つのデータの表現方法

┣データ1
┃┣-名前1
┃┣-32
┃┗-24
┃
┗データ2
 ┣-名前2
 ┣-33
 ┗-25

C言語

構造体定義。使い慣れてるせいか最も柔軟なテーブル定義ができる。配列も入れ子も自由自在。

型を定義

typedef struct StData
{
  char name[256];
  int num1;
  int num2;
} StData;

データを策定

StData data[]={
 {"名前1",32,24},
 {"名前2",33,25},
};

データの取り出し

int n = data[0].num1;

XML

<データ名> 値 </データ名>の書式でかける。2回もデータ名を描くのがめんどくさい。可読性にすぐれない。

型定義&データ設定

<data>0
 <name>名前1</name>
 <num1>32</num1>
 <num2>24</num2>
</data>

<data>1
 <name>名前2</name>
 <num1>33</num1>
 <num2>25</num2>
</data>1

JSON

データ名 :値の書式でかける。配列の場合はデータ名 :{名前:値 , 名前:値 , 名前:値}でかける。XMLに比べてすっきりしている。2回もデータ名を書かなくていいのが良い。
"フォルダ1": {
	"サブフォルダ1": {
	  "ファイル1": 1(値),
	  "ファイル2": true(値2),
	},
	"サブフォルダ2": {
	  "ファイル1": 2,
	  "ファイル2": false,
	},
	"サブフォルダ3": {
	  "ファイル1": 3,
	  "ファイル2": true,
	}
},

C#のテーブル(Unity)

Luaスクリプト

原則構造体の表現はできない。しかしテーブルという概念で数値だろうが、文字だろうが、関数だろうが格納できる仕組みを持つ。しかしその柔軟さゆえに、逆に特定の規則に沿ったフォーマットのデータを扱う時に色々不便。