今回は、初期設定に使用するiniファイルを扱う関数を作りました。
○iniファイルを扱う関数
iniファイルって便利です。あらかじめiniファイルに設定した値によってプログラムの動きを変化させられます。実行環境の違いを吸収したり、テストする場合にも重宝します。
UWSCには標準でiniファイルの読み書きを行う関数が用意されています。さっと使えるように、初めて起動した場合にはiniファイルを作る、そうでなければ設定値を読み込むという関数を作っておきます。
iniファイルを簡単に扱う関数
また、iniファイルは作るソフト毎に異なると思いますので、その度に作り直しする必要があります。(常にインクルードされるファイルではなく、目的のソフトのソースファイルにのみ記述しておくべき。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | FUNCTION iniprep() tmp=READINI(“メモ“,“自分専用の.iniファイルだよ“) IF tmp=““ WRITEINI(“メモ“,“自分専用の.iniファイルだよ“,“1“) WRITEINI(“設定“,“DOS窓パス“,“C:\WINDOWS\system32\cmd.exe“) WRITEINI(“SET“,“Position“,“1,260“) |
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[1]には“設定”セクションの“Firefoxパス”キーに書いてあるデータ
ini[2]には“設定”セクションの“Chromeパス”キーに書いてあるデータ
がそれぞれ代入されます。
また、上の関数を呼び出したときに出来上がる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ファイルを扱う関数
コメント