ポク太郎です。
あらかじめ設定した値によりプログラムの動きを変化させられるiniファイルって便利です。実行環境の違いを吸収したり、テストする場合にも重宝。
UWSCには標準でiniファイルの読み書きを行う関数が用意されています。
個別アプリにサッとiniファイルの使用環境を整えられるよう、初回起動時はiniファイル作成、違うなら設定値読み込む関数を作っておきます。
iniファイルを簡単に扱うiniprep()関数
また、iniファイルはソフト毎に異なるのでその度に作り直し要→常にインクルードされるファイルではなく、ソフト個別のソースにのみ記述しておくべき。
FUNCTION iniprep()
tmp=READINI("メモ","自分専用の.iniファイルだよ")
IF tmp=""
WRITEINI("メモ","自分専用の.iniファイルだよ","1")
WRITEINI("設定","DOS窓パス","C:\WINDOWS\system32\cmd.exe")
WRITEINI("設定","Firefoxパス","C:\Program Files\Mozilla Firefox\firefox.exe")
WRITEINI("設定","Chromeパス","C:\Program Files\Google\google chrome\chrome.exe")
WRITEINI("SET","Position","1,260")
WRITEINI("SET","StopHotKey","2,2")
WRITEINI("SET","LogLines","2000")
WRITEINI("SET","DefaultFont","")
RESULT=""
ELSE
// 読み込んで欲しい設定値をp[]に代入しておく
DIM p[2]//最大要素番号は必要な値に書き換える
p[0]=READINI("設定","DOS窓パス")
p[1]=READINI("設定","Firefoxパス")
p[2]=READINI("設定","Chromeパス")
RESULT=SLICE(p,0,LENGTH(p)-1)
ENDIF
FEND
1,23行目 | 1 23 |
FUNCTION iniprep() FEND |
iniprep()関数宣言:初回起動時はiniファイルを作る、そうでなければ設定値を読み込む関数 | ||
2行目 | 2 | tmp=READINI(“メモ“,“自分専用の.iniファイルだよ“) |
iniファイルから”メモ”セクションと”自分専用の.iniファイルだよ”キーの内容を読み込む。 | ||
3,15,22行目 | 3 15 22 |
IF tmp=““ ELSE ENDIF |
“メモ”セクションと”自分専用の.iniファイルだよ”キーがあったかどうかで条件分岐します。無かった場合は変数tmpには””(空白)が代入されています。 (無かった=初回起動だった)⇒ 4~14行目へ (あった=初回起動ではなかった)⇒ 17~21行目へ |
||
4~14行目 | 4 5 6 7 8 9 10 11 12 13 14 |
WRITEINI(“メモ“,“自分専用の.iniファイルだよ“,“1“)
WRITEINI(“設定“,“DOS窓パス“,“C:\WINDOWS\system32\cmd.exe“) WRITEINI(“SET“,“Position“,“1,260“) |
(初回起動だった) 次回の起動時のために”メモ”セクション”自分専用の.iniファイルだよ”キーに”1″と書き込みます。その他、必要な設定値を書き込みます。(例として、上記コードの内容を書きました。) 関数の戻り値として””(空白)を返します。 |
||
17~21行目 | 17 18 19 20 21 |
DIM p[2]//最大要素番号は必要な値に書き換える p[0]=READINI(“設定“,“DOS窓パス“) p[1]=READINI(“設定“,“Firefoxパス“) p[2]=READINI(“設定“,“Chromeパス“) RESULT=SLICE(p,0,LENGTH(p)–1) |
(初回起動ではなかった) 各設定値を配列p[]に代入します。 最後に21行目で配列を関数の戻り値として返します。 ※配列変数を返す関数の使い方はこちら(配列変数と関数【使い方まとめ】)。 |
iniファイルを扱う関数の呼び出しとできあがる情報
ini=iniprep()
ini[1]には“設定”セクションの“Firefoxパス”キーに書いてあるデータ
ini[2]には“設定”セクションの“Chromeパス”キーに書いてあるデータ
がそれぞれ代入されます。
また、上の関数を呼び出したときに出来上がるiniファイルは、下のようになります。
//出来上がったiniファイルの中身 [メモ] 自分専用の.iniファイルだよ=1 [設定] DOS窓パス=C:\WINDOWS\system32\cmd.exe Firefoxパス=C:\Program Files\Mozilla Firefox\firefox.exe Chromeパス=C:\Program Files\Google\google chrome\chrome.exe [SET] Position=1,260 StopHotKey=2,2 LogLines=2000 DefaultFont=
上の関数ではp[0~2]のみ定義しましたが、カスタマイズして必要な設定分準備しておけば配列変数に入れて返します。呼び出し側は一行だけで配列ini[]に全部代入してくれます。
ファイル操作の関数 | iniファイルを扱う関数 | 現在のタイムスタンプ文字列を返す関数 | 高圧縮jpegと非劣化bmp画像を取得する関数 |
○iniファイルを扱う関数
コメント