プログラムの設定を保存するINIファイルの利用方法


 HSP3掲示板より「設定ファイルの作成、読み込み」。


 プログラムの設定を保存しておく「設定ファイル」(*.ini)。この拡張子は英単語の「initialization」(初期化)から来たもの。中身は単なるテキストデータ(テキストファイル)です。


 HSPでこれを扱うには、一般的に下の2つの方法があります。



  1. HSP標準のメモリノートパッド機能(note~命令)を利用する。

  2. 設定ファイルの処理専門のWin32 API関数に放り投げる。

 2番はWisdomSoftさんによるページ(C言語向け)を参照。設定ファイル処理専門のWin32 API関数というのがいくつか用意されており、これを利用すれば楽っちゃー楽・・・。ただ、これに頼ってしまうとテキストデータの入出力処理やら文字列処理の勉強にならんので、ベーシックに1番のHSP標準命令を利用する方法です。イメージ 1


◆ ファイルを作成保存


 設定ファイルはnotesel命令+notesave命令で吐き出します。ファイルを出力する場面は、onexit命令で指定したラベルジャンプ先です。onexit命令を用意しておくと、ユーザーがプログラムを終了させた時に指定ラベルへとジャンプするので、このタイミングで行います。
 (最後にend命令を忘れずに、自分はたまに忘れる・・・ イメージ 2


◆ ファイルの読み込み


 逆に設定ファイルを読み込むには、プログラムの最初のあたりでnotesel命令+noteload命令を呼びます。ただ初回起動時は、設定ファイルが存在しないはずなので、ファイルチェックのexist命令で処理を分岐します。


 1行データを取得するなら、noteget命令を利用します。取得したデータをさらに細かく処理するには、strmid関数、getstr命令、instr命令あたりを組み合わせて利用します。(HSP 3.2はさらに文字列処理がらみの新規モノが増える)


 注意点として、取得したデータが数字なら、その型が「文字列」の状態であることを忘れずに。HSPの命令や関数のパラメータにまんま文字列を指定すると、HSPエラーになるものがあります。あるいは、文字を足し算して文字同士の結合、物理的に不可能な文字列の引き算・掛け算・割り算によるHSPエラーです。
 そのような場合はint関数を利用するなどして整数値へと変換したものを反映させます。