設定の保存と呼び出し(設定ファイル)

 プログラムの設定を保存したり、呼び出したりするには、レジストリに記録する方法と、設定ファイルを使用する方法の二つがあります(その他は無視)。

私自身が、やたらにレジストリに書き込むソフトが嫌いなため、ここでは設定ファイルによる方法を紹介します。

なお、設定ファイルは、「INIファイル」と呼ばれ、大文字の INI が使われますが、実際の設定ファイルの拡張子は、小文字で .ini となります。


■プログラムの例


事前に、デスクトップフォルダに設定ファイルを作成しておく必要はありません。プログラムの中で作成します。

ただし、他の人に、自分の作ったプログラムを使ってもらう時は、事前に初期設定などを記述した設定ファイルを同梱する必要があります。


──────────────────────────────

「Produire.File.dll」を利用する

アプリ設定という設定ファイルを作る

アプリ設定のファイル名は、「[デスクトップ]settings.ini」


アプリ設定について「アカウント」で「ユーザー名」へ「example」を設定する

アプリ設定について「アカウント」で「パスワード」へ「abc123」を設定する


ユーザー名は、アプリ設定について「アカウント」から「ユーザー名」を取得したもの

パスワードは、アプリ設定について「アカウント」から「パスワード」を取得したもの


ユーザー名を表示する

パスワードを表示する


「ユーザー名=[ユーザー名][改行]パスワード=[パスワード]」を表示する

──────────────────────────────


■設定ファイルの書式


設定ファイルの書式は、次のようになります。


[セクション名]

キー名=値


実際に、上のプログラムの例で作成・設定した設定ファイルを開いてみます。設定ファイルはテキストファイルなので、Windowsの初期値では「メモ帳」に関連付けされています(…そのはず)。

実際にプログラムを動かして設定する時は、プログラム上で設定を保存したり、読み込んだりするわけですが、プログラムを作っている時は、テストやデバッグのために、自分で設定ファイルを編集することもあります。


──────────

[アカウント]

ユーザー名=example

パスワード=abc123

──────────


先ほどの書式にあてはめてみると、次のようになります。


アカウント … これが[セクション名]になります。セクション名は、必ず [ ] で括ります。


ユーザー名 … これが キー名 になります。

パスワード … 同じく キー名 になります。


example … これが 値 になります。

abc123 … 同じく 値 になります。


■プログラムの説明


──────────────────────────────

「Produire.File.dll」を利用する

ーー設定ファイルなどの特殊なファイルを扱うのに必要なDLLを

ーーこのプログラムで利用することを宣言します。


アプリ設定という設定ファイルを作る

ーー「アプリ設定」という名前の設定ファイルを作成します。


アプリ設定のファイル名は、「[デスクトップ]settings.ini」

ーー作成する設定ファイルのパスを指定します。

ーーこの場合は、あくまでもサンプルなので、デスクトップ内に

ーー作成していますが、通常のプログラムでは、ほとんどの場合は

ーープログラム(実行ファイル)と同じフォルダに作成します。

ーーその場合は、設定ファイルのパスは 次のようになります。

ーーアプリ設定のファイル名は、「[プログラムのフォルダ]settings.ini」


ーー設定の保存

アプリ設定について「アカウント」で「ユーザー名」へ「example」を設定する

ーー「について」というのは、お約束の書き方なので、あまり気にしないように。

ーーアプリ設定(settings.ini)のファイルに保存された、

ーー「アカウント」で … アカウント というセクション名の中の、

ーー「ユーザー名」へ … ユーザー名 というキー名に、

ーー「example」を … example という値を、

ーー設定する … 設定します(そのまんまですが)。


アプリ設定について「アカウント」で「パスワード」へ「abc123」を設定する

ーー「アカウント」で … アカウント というセクション名の中の、

ーー「パスワード」へ … パスワード というキー名に、

ーー「example」を … abc123 という値を、

ーー設定します。


ーー設定の読込

ユーザー名は、アプリ設定について「アカウント」から「ユーザー名」を取得したもの

ーーアプリ設定(settings.ini)のファイルに保存された、

ーー「アカウント」から … アカウント というセクション名の

ーー「ユーザー名」を … ユーザー名 というキー名に格納された値を

ーー取得したもの … 取得したデータを、

ーー「ユーザー名」という変数に代入します。


パスワードは、アプリ設定について「アカウント」から「パスワード」を取得したもの

ーーーーアプリ設定(settings.ini)のファイルに保存された、

ーー「アカウント」から … アカウント というセクション名から

ーー「パスワード」を … パスワード というキー名に格納された値を

ーー取得したもの … 取得したデータを、

ーー「パスワード」という変数に代入します。


ユーザー名を表示する

パスワードを表示する

ーー上記の命令文で、それぞれの変数に代入されたデータを表示します。


「ユーザー名=[ユーザー名][改行]パスワード=[パスワード]」を表示する

ーー二つの変数を一つの文字列にして、改行を入れて表示します。


──────────────────────────────


■参考


リファレンス > ファイル操作 > 設定ファイル 

http://rdr.utopiat.net/docs/reference/file/inifile.htm


リファレンス > システム情報取得 > レジストリ 

http://rdr.utopiat.net/docs/reference/systeminfo/registry.htm


コメント

このブログの人気の投稿

■アクセシブルな開発環境「日本語プログラミング言語・プロデル」の紹介

ドキュメント検索 と 掲示板

命令文の書き方 その1:動詞と引数