2005年08月12日

プログラムに必要なパラメータをINIファイルから読込む方法

あなたがつくるアプリケーションプログラムは、
プログラムの動作や振舞いなどに必要な
パラメータをどのように読込み設定しているでしょうか?
INI形式やXML形式でファイルに持たせますか、
或いはレジストリに格納したり、
DBに格納したりと方法は幾つか考えられます。

Windowsのアプリケーションであれば、
パラメータをレジストリに格納することも可能ですが、
UnixやLinuxプラットフォーム上では、
レジストリの概念が無いので使用できません。
また、複数の端末で同じアプリケーションを稼動させる場合、
パラメータがDBで一元管理されているか、そうでないかで、
後の運用工数は大きく変わることでしょう。
どのような形でパラメータを設定し読込むかは、
アプリケーションの機能、各種制約、
運用などを十分検討して下さい。

前置はこれくらいにして、
とにかく手っ取り早く済ませたいと思うななたに、
今回はシンプルで使い勝手がよい、
INI形式のファイルを読込む方法を紹介します。

「Delphi」または「Kylix」の「IniFiles」ユニットにある、
「TIniFile」クラスを利用すると、
WindowsやLinuxといったプラットフォームを意識することなく、
いとも容易くINI形式のファイルが読込めます。
早速、お試しあれ!

全ソースは【続きを読む】をクリック!

使用例
procedure TForm1.btnReadIniFileClick(Sender: TObject);
var
 lSec,
 lItm: TStringList;
 lVal: String;
begin
 lSec := Nil;
 lItm := Nil;
 try
  memINI.Clear;
  if (FIni <> Nil) then FIni.Free;
  // INIファイルオブジェクトを作成する
  FIni := TIniFile.Create(
   ExtractFilePath(Application.ExeName) + edtIniFileName.Text);
  // セクション/アイテムデータを格納するため、
  // ストリングオブジェクトを作成する

  lSec := TStringList.Create;
  lItm := TStringList.Create;
  // セクションを読込み、
  // セクション分のループを実行し
  // 画面にINIファイルの内容を表示する

  FIni.ReadSections(lSec);
  while (lSec.Count > 0) do
  begin
   lItm.Clear;
   // セクション配下のアイテム情報を読込み、
   // アイテム分のループを実行し
   // 画面にINIファイルの内容を表示する

   FIni.ReadSection(lSec[0], lItm);
   memINI.Lines.Add(Format('[%s]', [lSec[0]]));
   while (lItm.Count > 0) do
   begin
    lVal := FIni.ReadString(lSec[0], lItm[0], '');
    memINI.Lines.Add(Format(' %s="%s"', [lItm[0], lVal]));
    lItm.Delete(0);
   end;
   lSec.Delete(0);
  end;
 finally
  if (lSec <> Nil) then lSec.Free;
  if (lItm <> Nil) then lItm.Free;
 end;
end;


【画面イメージ】

INIFileTester.gif

関連書籍


Copyright guy@かしらもんじ でぇ〜

続きを読む
posted by guy at 06:24 | 起動編

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。