Chararina(キャラリナ)は,キャラクター,システムの状態,情報を保存するために,
プロパティを用います.
プロパティに保存した情報はChararina終了後も保持され,
次回起動時にその情報が復元されます.
プロパティはプロパティキー(キー)とプロパティ値(値)のペアで構成されます.
プロパティの新規作成,取得,書き換え,削除にはプロパティキーが必要です.
プロパティツリーはプロパティとプロパティツリーを任意の数だけ持つことが出来ます.
プロパティツリーが持つプロパティを,子プロパティと呼びます.
逆に子プロパティから見たプロパティツリーを親プロパティツリーと呼びます.
DelProperty
DelPropertyTree
EnumChildProperty
GetProperty
MakePropertyTree
PropertyTreeExists
PutProperty
SaveProperty
void DelProperty( string key ) |
機能 | keyで指定したプロパティを削除します. | ||
---|---|---|---|
引数 |
|
||
戻り値 |
なし |
||
説明 |
key引数で指定されたプロパティを削除します. keyは,PutPropertyと同様に,\から始まる絶対パスあるいは相対パスで指定します. |
int DelPropertyTree( string tree )[1.50以降] |
機能 | プロパティツリーを削除します. | ||||
---|---|---|---|---|---|
引数 |
|
||||
戻り値 |
|
||||
説明 |
tree引数で指定されるプロパティツリーを削除します. 子プロパティも全て削除されます. |
string EnumChildProperty( |
機能 | 子プロパティのプロパティキーを列挙します. | ||||
---|---|---|---|---|---|
引数 |
|
||||
戻り値 |
|
||||
説明 |
key引数で指定されたプロパティを親プロパティとするプロパティのキーを一つずつ取り出します. count引数に取り出すプロパティのインデックスを指定します. 0は最初のプロパティ,1は2番目のプロパティをあらわします. count引数に指定できる最大数は,存在するプロパティの数-1です. これ以上の値を指定するとNULLを返します. count引数の値と取得するプロパティキーの対応は, PutProperty,DelProperty によるプロパティ操作で変化します. したがってEnumChildProperty関数を使用する処理の中で, これらの処理を行う場合は注意してください. |
例1 |
EnumChildProperty( "\\User", 0 ) → LastName(例) EnumChildProperty( "\\User", 1 ) → FirstName(例) string ko_prop = EnumChildProperty( "\\User", 1 ); GetProperty( "\\User\\" + ko_prop ); |
---|
string GetProperty( string key ) |
機能 | プロパティ値を取得します. | ||||
---|---|---|---|---|---|
引数 |
|
||||
戻り値 |
|
||||
説明 |
key引数で指定されたプロパティにセットされているプロパティ値を返します. 指定されたプロパティが存在しなかった場合, または読み込み権限が無かった場合はNULLを返します. |
int MakePropertyTree( string tree )[1.50以降] |
機能 | プロパティツリーを新規作成します. | ||||
---|---|---|---|---|---|
引数 |
|
||||
戻り値 |
|
||||
説明 |
プロパティツリーのキーを新規作成します. tree引数に新規作成するプロパティツリーの名前を指定します. 次の場合は失敗します.
|
boolean PropertyTreeExists( string tree )[1.50以降] |
機能 | プロパティツリーが存在するかを調べる | ||||
---|---|---|---|---|---|
引数 |
|
||||
戻り値 |
|
||||
説明 |
tree引数で指定されるプロパティツリーが存在するかを調べます. |
void PutProperty( |
機能 | プロパティを書き込みます. | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
引数 |
|
||||||||||||||||||||||||||
戻り値 |
なし |
||||||||||||||||||||||||||
説明 |
key引数で指定されるプロパティに, val引数で指定される文字列を書き込みます. 同名のキーが存在する場合はvalの値で上書きされます. keyには\記号から始まる絶対指定, または相対指定でプロパティキーを指定します. 相対指定の場合, いくつかのプロパティキーは自動的にマッピングされます. マッピングは次のように定義されています.
|
例1 |
例は春菜の場合です.ベンダコード(LF),キャラクター型番(HPX-01)は適宜変えてください. //「キャラクターについて」で表示される自分のプロフィールを設定. PutProperty("\\Vendor\\LF\\HPX-01\\System\\Vendor\\VdConfig\\Profile,"プロフィール"); |
---|---|
例2 |
//今回終了時(\\Vendor....を省略した場合\\Vendor\\LF\\HPX-01\\System\\Vendorを指定したのと同じ) action ShutDown@( 0 ) { //PutProperty("\\Vendor\\LF\\HPX-01\\System\\Vendor\\ShutDownTime", itoa( Time() ) );と同じ PutProperty( "ShutDownTime", itoa( Time() ) ); } //次回起動時 action StartUp@( 0 ) { int interval = Time() - atoi( GetPropety( "ShutDownTime" ) ); Talk( "こんにちは." + itoa( interval ) + "秒ぶりですね." ); } |
void SaveProperty( ) |
機能 | \Vendor\(ベンダーコード)以下のプロパティツリーの値を, aya.prpファイルに記録します. |
---|---|
引数 |
なし |
戻り値 |
なし |
説明 |
\Vendor\(ベンダーコード)以下のプロパティツリーの値を, aya.prpファイルに記録します. プロパティの内容は, Chararinaの正常終了時にファイルに保存されます. ただし異常終了やコンピュータ本体がリセットされた場合は保存されません. 適度なタイミングでこの関数を呼びだし, 現状のプロパティの状態をファイルに保存することで, 異常終了した場合に失われるプロパティ情報を最小限に抑えられます. |