前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

20.5. SFXConfig クラス(アプリ設定情報管理クラス)

SFXConfig クラスは、 『タグ』と『値』のペアからなるエントリの集合をファイルに保存するためのクラスです。

アプリの終了 / サスペンド時に、 アプリの設定情報を『タグ』と『値』のペアからなるエントリとして SFXConfig クラスに設定しておけば、 アプリの起動 / レジューム時にこのクラスからエントリを取得してアプリの設定情報を復元できます。

『タグ番号』には 0 から 65535 までの UInt16 型の数値、 『値』には数値、文字列、またはバッファを指定できます。

[Caution] mif ファイルの設定

SFXConfig クラスを利用するには、 mif ファイルの設定で「ファイル」の項目にチェックを入れる必要があります。

例 20.20. エントリの設定

SFXConfig config;

// エントリ(タグ番号: 1, "saving data") を SFXConfig に書き込む
config.WriteSFXAnsiString(1, "saving data");

//  SFXConfig の内容を "/data/applet.cfg" に保存する
config.Save(SFXPath("/data/applet.cfg"));

例 20.21. アプリの設定情報の読み込み

SFXConfig config;

// 設定ファイルから SFXConfig インスタンスをロードする
config.Load(SFXPath("/data/applet.cfg"));

// 「タグ番号: 1」のエントリからの SFXAnsiString 型の値を取得する
// ※ 第 2 引数は、指定したタグ番号のエントリが存在しなかったときに返すデフォルト値
SFXAnsiString str = config.ReadSFXAnsiString(1, "default text");
// str = "saving data" 

例 20.22. 様々なデータ型のエントリの値

config.WriteSInt32(2, -17); // SInt32 型(タグ番号: 2)
config.WriteUInt08(3, 'a'); // UInt08 型(タグ番号: 3)
config.WriteBool(4, true);  // Bool 型  (タグ番号: 4)

ByteConst data[] = {0x01, 0x11, 0x22, 0x33, 0x44};
SFXBuffer buffer(data, lengthof(data));
config.WriteSFXBuffer(5, buffer);        // SFXBuffer 型(タグ番号: 5)

// SFXConfig インスタンス内の指定したタグ番号のエントリの値を読み込む
// ※ 第 2 引数は、指定したタグ番号のエントリが存在しなかったときに返すデフォルト値

SInt32 n1 = config.ReadSInt32(2, -9999); // SInt32 型(タグ番号: 2)
// n1 = -17

AChar c = config.ReadUInt08(3, '\0');    // UInt08 型(タグ番号: 3)
// c = 'a'

Bool b = config.ReadBool(4, false);      // Bool 型(タグ番号: 4)
// b = true 

SFXBuffer buff = config.ReadSFXBuffer(5, SFXBuffer());  // SFXBuffer 型(タグ番号: 5)
// buff = {0x01, 0x11, 0x22, 0x33, 0x44}