■変数保存命令 SAVE[ ]
ファイルに指定した変数を保存します。
「save」フォルダ内に指定したファイルを生成し、その中に任意のデータ(値)を保存します。
データファイル名には拡張子として「.sd」が付きます。
データファイルのパス指定はできません。「save」フォルダ固定となります。(β版仕様)
ファイルにデータ(値)を保存する際、まずそのデータに「データ番号」を割り振ります。
例えば仮に、SAVE[FILE="AAA" DNO=5 SET=@B] とした場合、
「ファイルAAA.SDの中に、5番目のデータとして、変数@Bの値を格納する」
という意味でとらえていただければ分かりやすいでしょうか。
後に LOAD 命令でその保存したデータ(値)を読み出す際は、そのデータ番号を指定すれば、
簡単に取り出すことが出来ます。
配列変数の一括保存も可能です。その場合、配列変数の全要素を一括保存する形となります。
SAVE[FILE="AAA" DNO=12 SET=@TEST1()] のように、『@配列変数名()』という記述をします。
LOAD 命令にて配列変数を読み込む際も同様に、
LOAD[FILE="AAA" DNO=12 LET=@TEST2()] と記述すれば、保存した配列変数を読み出せます。
保存した配列変数を読み出す時は、保存した時と全く同じ配列サイズの配列変数を用意します。
例えば、上の例で @TEST1 変数が、INT[@TEST1(34,5,6)] と宣言された配列変数だったとすると、
それを読み込む @TEST2 変数も、(34,5,6) のサイズの配列変数でなければなりません。
サイズが違う場合は、エラーとなります。
キーワード
FILE = ファイル名 | データファイル名 |
DNO = 値(1〜1024) | データ番号の指定 |
SET = 変数名 | 保存する変数 |
ID = 文字列 | 保存するレイヤーIDを指定 |
[1]saveフォルダ内の「GLOBAL_FLAG.sd」に、データ番号1として整数変数@ABCの値を保存する。
INT[@ABC=5000]
SAVE[FILE="GLOBAL_FLAG.sd" DNO=1 SET=@ABC]
[2]saveフォルダ内の「SAVE_001.sd」に、データ番号5として実数変数@FFの値を保存する。
FLT[@FF]
SAVE[FILE="SAVE_001" DNO=5 SET=@FF] (※拡張子.sdを省略することも出来ます)
[3]saveフォルダ内の「SAVE_001.sd」に、データ番号123として整数の配列変数@HAの全要素を全て保存する。
INT[@HA(500,20)]
SAVE[FILE="SAVE_001" DNO=123 SET=@HA()]
[4]saveフォルダ内の「SAVE_001.sd」に、データ番号30として文字列変数$Sの内容を保存する。
STR[$S]
SAVE[FILE="SAVE_001" DNO=30 SET=$S]
[5]saveフォルダ内の「SAVE_001.sd」に、データ番号100として、CGレイヤー「BG」を保存する。
SAVE[FILE="SAVE_001" DNO=100 ID=BG]
[6]saveフォルダ内の「SAVE_001.sd」に、各種データを一括保存する。
※基本的に FILE キーワードが記述されるまでは、セーブされるべきデータがメモリに保存され続けます(データの予約保存)。
その後 FILE キーワードが記述された時点で、一気に出力されます(予約保存データの書き出し)。
この方式は、ファイルへの書込が一回で済むため、通常より高速に保存できるというメリットがあります。
大量の変数やサイズの大きい画像レイヤなどを保存する場合に特に顕著になります。
ですので、複数データをファイルに保存する場合の記述方法として、この方式を推奨します。
SAVE[DNO=10 SET=@A] //←データはメモリに予約保存され、ファイルへはまだ保存されない
SAVE[DNO=50 SET=@B()] //←データはメモリに予約保存され、ファイルへはまだ保存されない
SAVE[DNO=30 ID=BG_LAYER] //←データはメモリに予約保存され、ファイルへはまだ保存されない
SAVE[FILE="SAVE_001"] //←メモリに予約保存されていたデータが、ここではじめてファイルへ保存される
SAVE[FILE="〜"] でファイルへと書き出さない限り、予約保存されたデータはずっとメモリ上に残り続けます。
特に動作上の問題はありませんが、ただメモリ使用量がデータサイズ分だけ増えたままになってしまいますので、
意図してメモリ上に残しておく場合をのぞいて、確実に最後に SAVE[FILE="〜"] を記述するようにしてください。
また、予約保存データを取り消したい(初期化したい)場合には SAVEEND[ ] を利用できます。
|