プロパティ操作関数

Chararina(キャラリナ)は,キャラクター,システムの状態,情報を保存するために, プロパティを用います. プロパティに保存した情報はChararina終了後も保持され, 次回起動時にその情報が復元されます.

プロパティはプロパティキー(キー)プロパティ値(値)のペアで構成されます. プロパティの新規作成,取得,書き換え,削除にはプロパティキーが必要です.

プロパティツリーはプロパティとプロパティツリーを任意の数だけ持つことが出来ます. プロパティツリーが持つプロパティを,子プロパティと呼びます. 逆に子プロパティから見たプロパティツリーを親プロパティツリーと呼びます.

DelProperty
DelPropertyTree
EnumChildProperty
GetProperty
MakePropertyTree
PropertyTreeExists
PutProperty
SaveProperty

void DelProperty(   string key )

機能 keyで指定したプロパティを削除します.
引数
key 削除するプロパティのプロパティキー
戻り値

なし

説明

key引数で指定されたプロパティを削除します. keyは,PutPropertyと同様に,\から始まる絶対パスあるいは相対パスで指定します.

このカテゴリのトップ| カテゴリ別関数一覧| 関数名一覧

int DelPropertyTree(   string tree )[1.50以降]

機能 プロパティツリーを削除します.
引数
tree 削除するプロパティツリーのキー
戻り値
1成功
1以外失敗
説明

tree引数で指定されるプロパティツリーを削除します. 子プロパティも全て削除されます.

このカテゴリのトップ| カテゴリ別関数一覧| 関数名一覧

string EnumChildProperty(
  string key,
  int count )

機能 子プロパティのプロパティキーを列挙します.
引数
key 子プロパティを列挙したいプロパティのキー
count 取り出すプロパティのインデックス
戻り値
プロパティキー またはNULL
説明

key引数で指定されたプロパティを親プロパティとするプロパティのキーを一つずつ取り出します.

count引数に取り出すプロパティのインデックスを指定します. 0は最初のプロパティ,1は2番目のプロパティをあらわします. count引数に指定できる最大数は,存在するプロパティの数-1です. これ以上の値を指定するとNULLを返します.

count引数の値と取得するプロパティキーの対応は, PutPropertyDelProperty によるプロパティ操作で変化します. したがって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プロパティキーが見つからない,または権限が無い
説明

key引数で指定されたプロパティにセットされているプロパティ値を返します. 指定されたプロパティが存在しなかった場合, または読み込み権限が無かった場合はNULLを返します.

このカテゴリのトップ| カテゴリ別関数一覧| 関数名一覧

int MakePropertyTree(   string tree )[1.50以降]

機能 プロパティツリーを新規作成します.
引数
tree プロパティツリーキー
戻り値
1成功
1以外失敗
説明

プロパティツリーのキーを新規作成します. tree引数に新規作成するプロパティツリーの名前を指定します.

次の場合は失敗します.

  • 権限がない
  • 作成するプロパティツリーに至る途中のプロパティが無い

このカテゴリのトップ| カテゴリ別関数一覧| 関数名一覧

boolean PropertyTreeExists(   string tree )[1.50以降]

機能 プロパティツリーが存在するかを調べる
引数
tree プロパティツリーのキー
戻り値
true存在する
false存在しない
説明

tree引数で指定されるプロパティツリーが存在するかを調べます.

このカテゴリのトップ| カテゴリ別関数一覧| 関数名一覧

void PutProperty(
  string key,
  string val )

機能 プロパティを書き込みます.
引数
key プロパティキー
val プロパティ値
戻り値

なし

説明

key引数で指定されるプロパティに, val引数で指定される文字列を書き込みます. 同名のキーが存在する場合はvalの値で上書きされます. keyには\記号から始まる絶対指定, または相対指定でプロパティキーを指定します. 相対指定の場合, いくつかのプロパティキーは自動的にマッピングされます. マッピングは次のように定義されています.

プロパティキーマッピング後のプロパティキー
LastName\User\LastName
LastNameR\User\LastNameR
FirstName\User\FirstName
FirstNameR\User\FirstNameR
Gender\User\Gender
BirthYear\User\BirthYear
BirthMonth\User\BirthMonth
BirthDay\User\BirthDay
Address\User\Address
Pws_Ver\System\MajorVersion
ScriptUpdated\Vendor\ベンダーコード\キャラクター型番\System\ScriptUpdated
その他のプロパティキー\Vendor\ベンダーコード\キャラクター型番\Vendorプロパティツリー\プロパティキー
例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の正常終了時にファイルに保存されます. ただし異常終了やコンピュータ本体がリセットされた場合は保存されません. 適度なタイミングでこの関数を呼びだし, 現状のプロパティの状態をファイルに保存することで, 異常終了した場合に失われるプロパティ情報を最小限に抑えられます.

このカテゴリのトップ| カテゴリ別関数一覧| 関数名一覧