sample_ini_config.hsp

sample\iron\sample_ini_config.hsp » Plain Format

;============================================================
;  iron_ini.hsp サンプル: 設定ファイルの読み書き
;
;  起動時:
;    - sample_config.ini から前回終了時のウィンドウサイズ等を読む
;    - 無ければデフォルト値で起動
;
;  毎回:
;    - 起動回数カウンタ + 1 → ini に書き戻し
;
;  ESC キー終了時:
;    - 現在の値を ini に保存
;
;  HSP 既存 #func / #cfunc の戻り値慣習:
;    - 文字列 → refstr
;    - 整数   → stat
;    - 実数   → refdval
;============================================================

#include "hsp3_net_64.as"
#include "iron_ini.hsp"

	; カレントディレクトリを起点にした絶対パスで ini を開く
	ini_setpath "sample_config.ini"

	; ----- 設定読み込み (デフォルト値付き) -----
	ini_geti "Window", "Width",  640 : w        = stat
	ini_geti "Window", "Height", 480 : h        = stat
	ini_getd "View",   "Scale",  1.0 : scale    = refdval
	ini_get  "Account", "Name",  "guest"   : username = refstr
	ini_geti "Stat",   "Launches", 0  : launches = stat

	mes "INI ファイル:"
	mes "  sample_config.ini (カレントディレクトリ)"
	mes ""
	mes "前回サイズ : " + w + "x" + h
	mes "スケール    : " + scale
	mes "ユーザー    : " + username
	mes "起動回数    : " + launches

	; ----- 起動回数を + 1 してその場で保存 -----
	launches++
	ini_seti "Stat", "Launches", launches
	mes ""
	mes "今回起動 (累計 " + launches + " 回目) を ini に記録しました。"

	; ----- セクション内の全キーを列挙 (確認用) -----
	mes ""
	mes "[Window] セクション内容:"
	ini_section_keys "Window", win_keys
	cnt_keys = stat
	repeat cnt_keys
		mes "  " + win_keys.cnt
	loop

	mes ""
	mes "ウィンドウサイズを変更したい場合は sample_config.ini の"
	mes "[Window] Width / Height を直接編集してから再起動してください。"
	mes ""
	mes "ESC キーで終了 (終了時に現在の値を ini に保存)"

	onkey *quit
	stop

*quit
	if iparam ! 27 : stop          ; ESC 以外は無視

	; 終了時にスケールとユーザー名を更新する例
	ini_setd "View", "Scale", scale * 1.1
	ini_set  "Account", "Name", "demo_user_" + launches

	dialog "config.ini に保存しました。\n次回起動時に反映されます。", 0, "iron_ini sample"
	end