INIファイル
INIファイルは構造の単純なテキストファイルであり、設定ファイルのデファクトスタンダードである。このファイルは主にWindowsで使用するが、他のプラットフォームでも使われる。 INIファイルという名前はこのファイルの一般的な拡張子「.INI」から来ている。INIとはinitialization(イニシャライゼーション)の略であり、その他にconfiguration(コンフィギュレーション)の略である「.CFG」や「.conf」、あるいは「.TXT」も使われる。
フォーマット [編集]
基本的なフォーマットを以下に示す。
INIファイルに含まれる重要な要素が「パラメータ」である。個々のパラメータは「名前」と「値」を持ち、等号(=)で区切られる。等号の左が名前、右が値である。
name=value
パラメータは任意の名前を持つ「セクション」でグループ分けすることができる。セクション名は角カッコ([~])で囲み1行を占める。セクションの宣言の後に現れるパラメータはそのセクションに属する。明示的にセクションの終わりを示すデリミタはなく、次のセクションの宣言かファイルの終端でセクションは終わる。よってセクションはネストすることができない。
[section]
コメントの開始はセミコロン(;)によって示される。コメントはその行の終わりまで続く。セミコロンと行末の間の全ては無視される。
; comment text
その他の機能 [編集]
INIファイルのフォーマットは明確には決まっていない。多くのプログラムは上で示す基本機能以上の機能をサポートする。以下は一般的な機能の一覧である。実装しているかはプログラム次第である。
- 空行
簡単なプログラムの中には空行を許さないものがある。この場合、すべての行はセクションの宣言かパラメータかコメントでなければならない。
- クォーテーション
いくつかの実装では値を引用符で囲むことができる。典型的にはダブルクォーテーション("~")やアポストロフィ('~')あるいはその両方を使う。これにより明示的に空白文字を使ったり、特殊文字を使うことができる。
- コメント
セミコロンに加え「#」もコメントの指示に使えるものがある。
コメントを開始する位置が行頭しか許されないものと、行の途中からでもコメントを入れられるものがある。
- 名前の重複
多くの実装ではセクションの中では同名のパラメータは1つしか許されない。2つ目が現われたときには、異常終了する、2つ目が無視される、1つ目が上書きされるといったことが起こる。一部のプログラムではパラメータを重複させることで複数の値を持つパラメータを作ることができる。
セクション名の重複の扱いも実装によりさまざまである。ある実装ではセクションが重複すると単純に両方のパラメータを合成する。また異常終了したり一部を無視したりする場合もある。
- 名前/値のデリミタ
等号の代わりにコロン(:)を使うものもある。
- 階層構造
一般的に、INIファイルにはセクションの階層構造はない。しかし、階層的な命名規則を持つように見えることがある。例えばA、B、Cの階層を考えたとき、セクション名に[A.B.C](Windowsのxstart.ini)や[A\B\C](IBM Windows ドライバファイルdevlist.ini)と付けたり、セクション[A]の下にパラメータB,C,P=Vを作ったり(Microsoft Visual StudioのAEMANAGR.INI)することは可能である。
この場合、これらが見た目を分かりやすくするための単なる慣習なのか、それともプログラムが階層を理解しているのかは区別が難しい。
- エスケープ
エスケープ文字(典型的にはバックスラッシュ/円記号(\))の扱いはさまざまである。行末に置いた場合に改行を無視して次の行までを1つの論理行として扱うことがある。エスケープシークエンスによる特殊文字の扱いも見られる。
| 表記 | 解釈 |
|---|---|
| \\ | \(1つのバックスラッシュ、エスケープ文字をエスケープ) |
| \0 | Null文字 |
| \a | ベル |
| \b | バックスペース、まれにベル |
| \t | タブ |
| \r | 復帰(キャリッジリターン) |
| \n | 改行(ラインフィード) |
| \; | ; |
| \# | # |
| \= | = |
| \: | : |
| \x???? | 16進表記のUnicode文字 |