INIファイル

INI
ファイル名の拡張子
.ini
インターネットメディアの種類
text/plain、application/textedit、zz-application/zz-winassoc-ini
フォーマットの種類初期化/設定ファイル

INI ファイルは、プロパティのキーと値のペアで構成される構造と構文を備えたテキストベースのコンテンツと、プロパティを構成するセクションで構成されるコンピュータ ソフトウェア構成ファイルです。 [1]これらの構成ファイルの名前は、このソフトウェア構成方法を普及させたMS-DOSオペレーティング システムで使用される、初期化を表すファイル名拡張子INIに由来しています。この形式は、多くの設定コンテキストにおいて非公式の標準となっていますが、他のオペレーティング システム上の多くのアプリケーションでは、confcfgなどの異なるファイル名拡張子が使用されています。[2]

歴史

Windowsのソフトウェア構成の主なメカニズムは、もともと、1 行あたり 1 つのキーと値のペアを含むテキスト行で構成され、セクションに編成されたテキスト ファイル形式でした。この形式は、デバイス ドライバー、フォント、スタートアップ ランチャーなどのオペレーティング システム コンポーネントに使用されていました。 INI ファイルは、一般に、アプリケーションが個別の設定を保存するためにも使用されます。[3]

この形式は、 Windows 3.1xまで16 ビットMicrosoft Windowsプラットフォームで維持されていました。Windows 95以降、 Microsoft はWindows レジストリの使用を推奨し、開発者が構成に INI ファイルを使用しないように誘導し始めました。 Windows のそれ以降のすべてのバージョンでは、システム構成に Windows レジストリが使用されていますが、.NET Framework 上に構築されたアプリケーションは特別なXML .configファイルを使用します。初期化ファイル関数は Windows で引き続き使用でき、開発者は引き続き使用できます。

Windows ソフトウェア以外にも、プラットフォームに依存しないソフトウェアでも設定にこのファイル形式が使用される場合があります。一部のUnix 風の構成ファイルも同様の形式を使用します。 INI は人間が判読でき、解析が簡単なため、複雑さをあまり必要としない設定ファイルに使用できる形式です。

有病率

以下は、.INI ファイルが存在する場所の完全なリストではありません。

  • Desktop.ini ファイルは、フォルダーのアイコンの指定など、ディレクトリのプロパティを構成するために Windows で今でも使用されています。[4] [5]
  • PHPの php.ini ファイルは .INI 形式を採用しています。[6] [7]
  • Gitの .git/config ファイルは .INI 形式で書かれています。[8]
  • freedesktop.org *.desktop デスクトップ エントリは .INI 形式で書かれています。[9]
  • systemd *.service ユニット構成ファイルは .INI で記述されます。[10]
  • Netatalkの afp.conf ファイルは、.INI スタイルの構成言語で書かれています。[11]
  • Pacmanの pacman.conf ファイルは .INI で書かれています。[12]

次のサンプル ファイルには 2 つのセクションがあります。1 つはソフトウェアの所有者用で、もう 1 つは給与データベース接続用です。コメントには、ファイルを最後に変更したユーザーと変更の理由が記録されます。

;最終更新日 2001 年 4 月 1 日、John Doe 
[所有者]
名前= John Doe組織= Acme Widgets Inc.  
  

[データベース] 
;ネットワーク名解決が機能しない場合は、IP アドレスを使用します。
サーバー= 192.0.2.62ポート= 143ファイル= "payroll.dat"       
  
  

フォーマット

広い意味では、.INI は非公式形式であり、人による構成が可能なままでありながら、アドホックな実装に適しています。その結果、 .INI 方言と呼ばれる、さまざまな仕様 (パーサー実装がこれまでに作成された唯一の仕様である場合もあります) が多数存在します

一方、.INI の解釈は個人の好みやコンピューティング環境に大きく依存します (例: 空白文字を正確に含むデータの必要性、フィールド タイプ情報の必要性、Windows では大文字と小文字の区別が優先され、Unix では大文字と小文字の区別が優先されます。 -#区切られたコメントは Unix スクリプトから借用しています)。したがって、.INI は増殖しやすくなっており、 .INI フレーバーが通常関連付けられているコアが存在します。テキストベースと行ベース、空白は削除され、空行とコメント行 (例; registers to system-wide mailcap: # workaround for d5cb328) は無視され、角括弧は意味を示します。セクション (例[Unit][branch "master"])、キーと値のペアとしてのデータは、多くの場合等号 (ASCII 0x3D) で区切られます (例IconFile=Folder.icotime machine = yes)。

できるだけ多くの方言をサポートできるパーサーを作成する試みが存在しており、[13] 、その最も複雑な解釈では、.INI 形式は任意のS 式を表現でき、 XMLJSONなどの標準化された形式と同等になります。この構文は決まったものではないため、より快適に感じる人もいるかもしれません。

.INI ファイル形式は厳密に定義されていないため、多くのパーサーは共通のコアを形成する機能を超える機能をサポートしています。実装されたサポートは非​​常に不安定です。

キーと値のペア

.INI 内のデータは、 keyまたはpropertyと呼ばれるキーと値のペアで保持されます。したがって、キーはキーと値のペア全体を参照することも、そのキーのみを参照することもできます。値はプロパティ名とも呼ばれます。テキスト表現では、キーと値のペアは行または複数行で表され、値の始まりは区切り記号 (通常等号( =、ASCII 0x3D) で示されますが、場合によってはコロン ( :、ASCII 0x3A ) で示されます) ) または空白 (GNU の世界では時折使用されます[13] )。キーのキーは区切り文字の左側に表示され、多くの場合空ではないため、区切り文字を含めるべきではありません。一部のフレーバーでは、値にエスケープ シーケンスを使用できます。

Windows の実装では、等号とセミコロンは予約文字であり、キーに含めることはできません。キーの周囲の空白はパーサーによって取り除かれます。値には任意の文字を含めることができます (Windows スタイルでは、区切り文字を空白で囲みません: 例: IconFile=Folder.ico)。

キーと値のペアは、テキストでは次のようになります。

キー=キー = v
名前=sem = ; semver = v5822.433.2   


セクション

キーと値のペアは、セクションの下にグループ化できます。一部の .INI 方言では、すべてのキーと値のペアがセクション内に存在する必要があり、いわゆるグローバル プロパティを許可するものもあります。[14]キーと値のペアがグループ化されている場合、セクション名は角括弧( [ASCII 0x5B およびASCII 0x5D)で囲まれて単独で 1 行に表示され]、別のセクションまで後続の行のすべてのキーと値のペアに適用されます。と宣言されています。明示的な「セクションの終わり」区切り文字 (XML など) はありません</tag>。したがって、構文的にセクションを任意にネストすることはできません。必要に応じて、階層を平坦化し、セクション名内のカスタム区切り文字 (多くの場合.、 、 ASCII 0x2E) は、サブセクションと呼ばれる 1 レベルのネストがサポートされることがよくあります。

ネストされたセクションを使用する .INI ドキュメントの例:

[プロジェクト]
名前=果樹園レンタルサービス(アプリ付き)対象地域= 「ベイエリア」; TODO:法務チームの空席を宣伝します= (空席)  
  

  

[果物「リンゴ」]
商標問題=予見可能な=既知  
  

[fruit.Date]
=斬新商標問題= 「本当にありそうもない」  


[果物「ラズベリー」]
予想される問題= 「物流 (壊れやすい果物)」商標問題= \
の可能性  
 

[fruit.raspberry.proponents.fred] 
date = 2021-11-23, 08:54 +0900 comment = 「赤い果物が好きです。」[果物「デーツ/支持者/アルフレッド」]コメント:どうして、   \
 \
 \
デーツを買うのでしょう。# 折りたたみ: 「\\\\\nn」は「\\n」または「\n」として解釈されますか? # それとも「\\\\」は折り畳みを妨げるのでしょうか? editor =私の名前には \ \
改行が含まれている可能性があります。  
  

    


  

階層 (セクションのネスト)

一部のパーサーでは、パス区切り文字としてドットを使用してセクションをネストできます。

[セクション]
ドメイン= example.com  

[セクション.サブセクション] 
foo =バー  

場合によっては相対的なネストもサポートされており、先頭のドットは前のセクションへのネストを表します: [13]

[セクション]
ドメイン= example.com  

[.subsection] 
foo =バー  

歴史的には、ドットの代わりにネストを表現する方法も存在していました (たとえば、バックスラッシュを ; の形式でネスト区切り文字として使用した IBM の Microsoft Windows 用ドライバー ファイルdevlist.iniまったく異なる構文を使用した[A\B\C]Microsoft Visual Studio のファイル)および)AEMANAGR.INIの形式で。一部のパーサーはネストのサポートをまったく提供しておらず、階層に依存していませんでしたが、一意の識別子を構成するという事実を利用することでネストを部分的にエミュレートすることは可能でした。 [A]B,C,P = V[A.B.C]

大文字と小文字の区別

Windows のセクション名とプロパティ名は大文字と小文字が区別されません。[15]ほとんどの Unix スタイルの .INI 解釈では、大文字と小文字の折りたたみが完全に禁止されていますが、セクション名[16]またはキー[17]については大文字と小文字の折りたたみが許可される場合があります。

コメント

末尾に連続した空白があり、その後にセミコロン( ;、ASCII 0x3E)が続く行は、コメントを示します。さらに、一部の .INI 方言では、UNIXシェルのコメントを反映して、コメントを示すために番号記号( 、ASCII 0x23) を使用できます。すべてではありませんが、一部の .INI 方言では、キーと値のペアの行またはセクション行 (インライン コメントと呼ばれます) にコメントを付けることができます。一部の方言では、値またはセクションの閉じ括弧とコメントを区切る空白が必要です。それでも、一部の方言ではシャープ名がキー名に含まれ、それ自体が無視される場合があります。コメント行は、パーサーによって無視されるように設計されています。 #

#! /bin/convert-ini-to-perl |パール | ssh wikipedia.org アップロード --sanitise=no 
; .INI 方言についての知識がないとあいまいです: 
;値は「live」ですか、それとも「live #危険な状態」ですか?私は
# 危険に生きるの好きです   

#var = a

var = a ;これはインライン コメントですfoo = bar # これは別のインライン コメントです         
       

WinAPIGetPrivateProfileStringの方言では、コメントは単独の行に存在する必要があります。

セクションとプロパティの順序

セクション内のプロパティの順序とファイル内のセクションの順序は関係ありません。

重複した名前

ほとんどの実装では、セクション内で指定された名前を持つプロパティを 1 つだけサポートします。プロパティ名が 2 回目に出現すると、abort が発生するか、無視される (値が破棄される) か、最初に出現するプロパティ名がオーバーライドされる (最初の値が破棄される) 可能性があります。一部のプログラムでは、複数値のプロパティを実装するために重複したプロパティ名を使用します。

同じ名前を持つ複数のセクション宣言の解釈も異なります。一部の実装では、重複したセクションは、あたかも連続して発生したかのように、そのプロパティを単にマージします。他のものは中止したり、INI ファイルの一部を無視したりする場合があります。

引用符で囲まれた値

一部の実装では、通常は二重引用符アポストロフィを使用して、値を引用符で囲むことができます。これにより、空白の明示的な宣言や特殊文字 (等号、セミコロンなど) の引用が可能になります。標準の Windows 関数 GetPrivateProfileString はこれをサポートしており、値を囲む引用符を削除します。

行の継続

C 構文をエミュレートすることで、一部の方言\では行の最後の文字としてバックスラッシュ ( 、ASCII 0x5C) による行の折りたたみが許可されます。 [18]このような行継続では、バックスラッシュの直後に EOL (行末) が続くと、バックスラッシュと改行が削除され、文書の行が論理行に変換されます。

エスケープ文字

一部の方言では、文字エスケープのさまざまなサポートを提供しています。通常はバックスラッシュ文字 ( \ASCII 0x5C) をメタキャラクタとして使用し、C 構文をエミュレートします。[19]

一部の仕様では一般的なエスケープ シーケンスのメタキャラクターを明示的にミュートするため、エスケープ シーケンスを盲目的に解釈するのは賢明ではありません。[20] [21]

一般的なエスケープ シーケンス
順序 意味
\\ \ (エスケープ文字をエスケープする 単一のバックスラッシュ)
\' アポストロフィ
\" 二重引用符
\0 ヌル文字
\a ベル/アラート/可聴音
\b バックスペース一部のアプリケーションの ベル文字
\t タブ文字
\r キャリッジリターン
\n 改行
\; セミコロン
\# 番号記号
\= 等号
\: 結腸
\xhhhh UTF-8 またはローカル エンコードでエンコードされた、 コード ポイント0xhhhh のUnicode文字

INI ファイルへのアクセス

Windows では、プロファイル API は、従来の Windows .ini ファイルから設定を読み書きするために使用されるプログラミング インターフェイスです。たとえば、GetPrivateProfileString 関数は、初期化ファイル内の指定されたセクションから文字列を取得します。 (「プライベート」プロファイルは、 WIN.INIGetProfileStringからフェッチされると対比されます。)

次のサンプルCプログラムは、上記のサンプル INI ファイル (構成ファイルの名前を とするdbsettings.ini) からプロパティ値を読み取る方法を示しています。

#include <windows.h> 

int main ( int argc , _TCHAR * argv [])    
{
  _TCHARデータベースサーバー[ 1000 ]; 
  int dbport ; 
  GetPrivateProfileString ( "データベース" , "サーバー" , "127.0.0.1" , dbserver , sizeof ( dbserver ) / sizeof ( dbserver [ 0 ]), ". \\ dbsettings.ini" );       
  dbport = GetPrivateProfileInt ( "データベース" , "ポート" , 143 , ". \\ dbsettings.ini" );     
  // 注意 WritePrivateProfileInt() は存在せず、WritePrivateProfileString() のみが存在します。
  0を返します 
}

GetPrivateProfileString 関数の 3 番目のパラメーターはデフォルト値で、上記の 2 つの関数呼び出しではそれぞれ「127.0.0.1」と 143 です。このパラメータに指定された引数がNULLの場合、デフォルトは空の文字列""です。

Unix では、INI ファイルにアクセスするためのさまざまな構成ライブラリが存在します。多くの場合、それらはすでにフレームワークやツールキットに含まれています。 Unix 用の INI パーサーの例には、GLib、iniparser、libconfini などがあります。

INI パーサーの比較

名前 セクションのサポート セクションのネストのサポート 無効なエントリ認識[22] 複数行のサポート[23] 値のタイプ 読み取り/書き込みのサポート プラットホーム ライセンス プログラミング言語 最新リリースバージョン
Python ConfigParser [24] [25] はい はい いいえ 規格外[26] ブール値数値文字列 読み取り+書き込み *BSDLinuxmacOSWindows PSFL C (実装)、Python (使用) 3.9.7 [27]
グリブ[28] はい はい いいえ いいえ ブール値数値文字列配列 読み取り+書き込み *BSDLinuxmacOSWindows LGPL C 2.66.7 (2021年2月11日; 3年前) [±] [29] ( 2021-02-11 )

[30]

イニファイル[31] はい いいえ いいえ いいえ ブール値数値文字列 読み取り+書き込み *BSDLinuxmacOSWindows アパッチ 行く 1.2.0 [32]
イニ[33] はい いいえ いいえ 規格外[34] ブール値数値文字列 読む *BSDLinuxmacOSWindows BSD C 53 [35]
イニパーサー[36] はい いいえ いいえ はい ブール値数値文字列 読み取り+書き込み *BSDLinuxmacOSWindows マサチューセッツ工科大学 C 4.1 [37]
Java (経由java.util.Properties) [38] いいえ いいえ いいえ はい 読み取り+書き込み プラットフォームに依存しない デュアルライセンス:クラスパス例外[39]および独自のライセンスを備えたGPLバージョン 2 。[40] C (実装)、Java (使用) 21.0.0 LTS (2023 年 9 月 19 日、6 か月前) [±] ( 2023-09-19 )

17.0.6 LTS (2023 年 2 月 18 日、13 か月前) [±] 11.0.17 LTS (2022 年 10 月 18 日、17 か月前[41] ) [±] 8u401 LTS (2024 年 1 月 16 日、2 か月前[42] ] ) [±] ( 2023-02-18 )
 ( 2022-10-18 )
 ( 2024-01-16 )

libconfini [43] はい はい はい はい ブール値数値文字列配列 読む *BSDLinuxmacOSWindows GPL C 1.16.2 [44]
PHP (経由parse_ini_file()) [45] はい はい はい いいえ 数値文字列Null 読む LinuxmacOSWindows PHP ライセンスv3.01 [46] C (実装)、PHP (使用) 8.3.6 [47] (2024 年 4 月 11 日; 2 日前)  ( 2024 年 4 月 11 日)
ピニ[48] はい いいえ はい はい ブール値数値文字列 読み取り+書き込み プラットフォームに依存しない GPL パイソン 1.0 [49]
Python-ini [50] はい いいえ いいえ はい ブール値数値文字列Null 読み取り+書き込み プラットフォームに依存しない BSD パイソン 1.1.0
ルードコンフィグ[51] はい いいえ いいえ いいえ ブール値数値文字列 読み取り+書き込み LinuxWindows GPL C++ 廃止 – 最終バージョンは 5.0.5、2009 年 11 月以降[52]
Windows API はい いいえ いいえ いいえ 数値文字列構造体 読み取り + 書き込み (非破壊) ウィンドウズ 独自の C 23H2 (10.0.22631.3447) (2024 年 4 月 9 日、4 日前[53] ) [±] ( 2024-04-09 )
Wine ( Windows APIの実装) はい いいえ いいえ いいえ 数値文字列構造体 読み取り + 書き込み (非破壊) LinuxmacOSWindows LGPL C 9.0 [54] 2024年1月16日; 2ヶ月前 ( 2024 年 1 月 16 日)
Rust 構成パーサー[55] はい いいえ いいえ いいえ ブール値数値文字列 読み取り+書き込み *BSDLinuxmacOSWindows MITまたはLGPL v3.0+ さび 3.0.2 [55] 2022 年 9 月 11 日; 3ヶ月前
java-ini-パーサー[56] はい いいえ はい はい ブール値数値文字列 読み取り+書き込み プラットフォームに依存しない アパッチ ジャワ 1.4 [55] 2022 年 12 月 29 日。 3日前
名前 セクションのサポート セクションのネストのサポート エントリ認識の無効化 複数行のサポート 値のタイプ 読み取り/書き込みのサポート プラットホーム ライセンス プログラミング言語 最新リリースバージョン

ファイルマッピング

初期化ファイル マッピングは、INI ファイルとWindows レジストリ間のマッピングを作成します。[57] [58]これは、従来の .ini ファイルに保存されていた設定を新しいレジストリに移行する方法として、Windows NT および Windows 95 で導入されました。ファイル マッピングは、プロファイル API 呼び出しをトラップし、IniFileMappingレジストリ セクションの設定を使用して、レジストリ内の適切な場所への読み取りと書き込みを指示します。

以下の例を使用すると、文字列呼び出しを行って、たとえばdbsettings.iniという設定ファイルのownerセクションからnameキーを取得できます。戻り値は文字列「John Doe」である必要があります。

GetPrivateProfileString("所有者", "名前", ... , "c:\\programs\\oldprogram\\dbsettings.ini");

INI マッピングは、このプロファイル API 呼び出しを受け取り、指定されたファイル名のパスを無視し、ディレクトリの下にファイル名に一致するレジストリ キーがあるかどうかを確認します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\ CurrentVersion\IniFileMapping

これが存在する場合、要求されたセクションに一致するエントリ名が検索されます。エントリが見つかった場合、INI マッピングはその値をレジストリの別の部分へのポインタとして使用します。次に、レジストリのその部分で要求された INI 設定を検索します。

一致するエントリ名が見つからず、 (デフォルト)エントリ名の下にエントリがある場合、INI マッピングでは代わりにそれが使用されます。したがって、各セクション名に独自のエントリは必要ありません。

HKEY_LOCAL_MACHINE\Software\...\IniFileMapping\dbsettings.ini
(デフォルト) @USR:ソフトウェア\oldprogs\inisettings\all
データベース USR:ソフトウェア\oldprogs\inisettings\db

したがって、この場合、[owner] セクションのプロファイル呼び出しは次のようにマッピングされます。

HKEY_CURRENT_USER\Software\oldprogs\inisettings\all
名前 ジョン・ドウ
組織 アクメ製品

ここで、「name」レジストリ エントリ名が、要求された INI キーと一致することがわかります。その後、「John Doe」の値が Profile 呼び出しに返されます。この場合、デフォルトの @ プレフィックスにより、ディスク上の dbsettings.ini ファイルへの読み取りが防止されます。その結果、レジストリで見つからない設定は INI ファイルで検索されません。

database」レジストリ エントリの値には @ プレフィックスがありません。したがって、この[database]セクションの場合のみ、レジストリ内の設定が最初に取得され、次にディスク上の dbsettings.ini ファイル内の設定が取得されます。

代替案

Windows 95以降、Microsoft は INI ファイルではなく Windows レジストリの使用を強力に推進し始めました。[59] INI ファイルは通常、2 つのレベル (セクションとプロパティ) に制限されており、バイナリ データを適切に処理できません。しかし、レジストリがモノリシック、不透明、バイナリであり、ファイルシステムと同期する必要があり、オペレーティング システムの単一障害点となるため、この決定は批判を免れないわけではありません。[60]

その後、XMLベースの構成ファイルが、テキスト ファイルで構成をエンコードするための一般的な選択肢になりました。[要出典] XML では、任意の複雑なレベルとネストが可能で、バイナリ データをエンコードするための標準メカニズムが備わっています。

最近では、JSONTOMLYAMLなどのデータ シリアル化形式が構成形式として機能するようになりました。これら 3 つの代替形式は任意にネストできますが、INI ファイルとは構文が異なります。その中で、TOML は INI に最もよく似ていますが、TOML を INI の大きなサブセットと意図的に互換性を持たせるというアイデアは拒否されました。[61]

ただし、最新の INI パーサーは、同じものを表現するための複数の構文を許可することで INI ファイルの「非公式ステータス」を維持しながらも、 XMLJSONTOMLYAMLの同じ任意レベルのネストを許可し、型付き値Unicodeの同等のサポートを提供します。 [62]

こちらも参照

参考文献

  1. ^ Microsoft TechNet: Ini ファイル項目の構成
  2. ^ .conf 初期化ファイル
  3. ^ Microsoft: Windows NT ワークステーション リソース キット
  4. ^ Microsoft Learn (2022-02-08)。 「Desktop.ini を使用してフォルダーをカスタマイズする方法」2024-01-10 に取得
  5. ^ Codrut Neagu、「デスクトップに Desktop.ini ファイルが 2 つあるのはなぜですか? それらは何をするのですか?」。
  6. ^ ラスムス・ラードルフ、ケビン・タトロエ、ピーター・マッキンタイア。 「プログラミングPHP」。セクション「parse_ini_file」、「拡張 INI エントリ」など。
  7. ^ クリスチャン・ウェンツ。 「PHPとMySQLのフレーズブック」。 「INI ファイルの解析」セクションを参照してください。引用: "... INI ファイル形式 ... は Windows の世界で非常に広く使用されていましたが、今日では PHP などのソフトウェア製品の構成にも使用されています。たとえば、... php.ini"
  8. ^ "git-config 設定ファイル".
  9. ^ "ファイルの基本形式".仕様.freedesktop.org
  10. ^ "systemd.service". www.freedesktop.org
  11. ^ "afp.conf — Netatalk 設定ファイル" . 2024-01-10 に取得
  12. ^ "pacman.conf(5)".アーチリナックス.org
  13. ^ abc libconfini のライブラリ関数マニュアル
  14. ^ org.apache.commons.configuration2.INIConfiguration の Apache ドキュメント、Apache Software Foundation
  15. ^ これには Windows 実装が含まれます。「GetPrivateProfileString 関数」を参照してください。 Microsoft 開発者ネットワーク。マイクロソフト2012 年 6 月 2 日に取得
  16. ^ Git プロジェクト。 「config.txt」2024-01-10 に取得
  17. ^ Git プロジェクト。 「config.txt」2024-01-10 に取得
  18. ^ Git プロジェクト。 「config.txt」2024-01-10 に取得
  19. ^ クロアントの実装
  20. ^ Git プロジェクト。 「config.txt」2024-01-10 に取得
  21. ^ Git プロジェクト。 「config.txt」2024-01-10 に取得
  22. ^ INI ファイルの作成者の間では、不要なエントリを完全に削除するのではなく、無効にするために「コメントアウト」するのが一般的です。a次の例のキーを参照してください。
    [セクション] 
    #a=a
    b=b
  23. ^ ここでの行継続の標準構文は、iniparser、libconfini、および によって実装される、バックスラッシュとそれに続く改行のシーケンスを指します。java.util.Properties
  24. ^ フレドリック・ルンド。 「Python標準ライブラリ」。 2001。セクション「ConfigParser モジュール」。 p. 143
  25. ^ "ConfigParser - 構成ファイル パーサー".
  26. ^ 動作するように設計された言語 ( Python ) の構文に従い、ノードを複数の行にまたがるには、ConfigParser では、より一般的なバックスラッシュ+改行の代わりに、後続の行でより深いインデントが必要です(参照: configparser — 構成ファイルパーサー)
  27. ^ バージョン別の Python ドキュメント
  28. ^ GLib キー値ファイル パーサー
  29. ^ フィリップ・ウィズナル (2021 年 2 月 11 日)。 「グリブ2.66.7」。GNOME ftp-release (メーリングリスト) 2021 年2 月 12 日に取得
  30. ^ リリース · GNOME/glib
  31. ^ inifile ドキュメント
  32. ^ リリース · inifile
  33. ^ inih README
  34. ^ インデントを使用し、明示的に ConfigParser のアプローチに従っています (詳細については、プロジェクトのドキュメントを参照してください)
  35. ^ リリース · benhoyt/inih
  36. ^ iniparser ドキュメント
  37. ^ リリース · ndevilla/iniparser
  38. ^ プロパティ (Java プラットフォーム SE 8)
  39. ^ "OpenJDK: GPLv2 + クラスパス例外". Openjdk.java.net。 1989 年 4 月 1 日2016 年 2 月 9 日に取得
  40. ^ "Java SE の BCL".オラクル.com。 2013-04-02 2016 年 2 月 9 日に取得
  41. ^ 「JDK リリース」.オラクル株式会社2022-12-09 に取得
  42. ^ 「JDK リリース」.オラクル株式会社2024-01-17 に取得
  43. ^ libconfini ドキュメント
  44. ^ リリース · madmurphy/libconfini
  45. ^ PHP。 「parse_ini_file() — 構成ファイルを解析する」。公式 PHP ドキュメント2022-07-19 に取得
  46. ^ PHP ライセンス v3.01[1]
  47. ^ 「バージョン 8.3.6」。 2024 年 4 月 11 日2024 年4 月 13 日に取得
  48. ^ ピニ
  49. ^ タグ · whoatemybutter / PyINI
  50. ^ Python-ini
  51. ^ RudeConfig ドキュメント
  52. ^ リリース · RudeConfig
  53. ^ 「2024 年 4 月 9 日—KB5036893 (OS ビルド 22621.3447 および 22631.3447)」。マイクロソフトサポートマイクロソフト
  54. ^ “Wine 9.0 リリース”. 2024 年 1 月 16 日2024 年1 月 16 日に取得
  55. ^ abc "crates.io の configparser". crates.io。 2022年12月12日。 2022-12-12 のオリジナルからアーカイブ2022 年 12 月 12 日に取得
  56. ^ java-ini-parser github ページ
  57. ^ 初期化ファイルとレジストリ、Windows NT ワークステーション リソース キットMicrosoft TechNet
  58. ^ NT レジストリの管理、Windows NT レジストリの管理、Paul Robichaux、O'Reilly Media
  59. ^ システム レジストリ
  60. ^ Windows レジストリは良いアイデアでしたか? – コーディングホラー
  61. ^ "GitHub での「.INI 互換性は価値のある目標である」問題についてのコメント". GitHub
  62. ^ libconfini/README
  • 情報ボックス - http://filext.com/file-extension/INI
  • 情報ボックス - https://wikiext.com/ini

外部リンク

  • libconfini のライブラリ関数マニュアル: libconfini で許可される特定の構文。
  • Cloanto による INI ファイル形式の実装: Cloanto によって実装されたパーサーによって許可される特定の構文。
  • 非常に単純なデータ ファイル メタフォーマット: Apache Groovy の INI パーサー チュートリアル。
  • Microsoft の GetPrivateProfileString() 関数と WritePrivateProfileStringA() 関数
「https://en.wikipedia.org/w/index.php?title=INI_file&oldid=1214525538」から取得