1. INI ファイルの構造を理解する必要があります。
;コメント
[セクション名]
キーワード=値
...
INI ファイルでは複数のセクションを使用でき、各セクションでは「=」の後にキーワードの値を指定できます。
値には、文字列、整数値、ブール値の 3 種類があります。文字列は引用符なしで INI ファイルに保存され、ブール値の true 値は 1 で表され、ブール値の false 値は 0 で表されます。
コメントはセミコロン「;」で始まります。
2. 定義
1. インターフェースの Uses セクションに IniFiles を追加します。
2. Var 変数定義セクションに行を追加します。
myinifile:Tinifile;
その後、変数 myinifile に対して作成、開く、読み取り、書き込みなどの操作を行うことができます。
3.INIファイルを開きます
myinifile:=Tinifile.create('program.ini');
上記のステートメント行は、変数 myinifile と特定のファイル project.ini の間の接続を確立します。その後、program.ini ファイル内のキーワードの値を、変数 myinifile を通じて読み書きできるようになります。
括弧内のファイル名でパスが指定されていない場合、Program.ini ファイルは Windows ディレクトリに保存されることに注意してください。Program.ini ファイルをアプリケーションの現在のディレクトリに保存する方法は次のとおりです。完全なパスとファイル名。次の 2 つのステートメントでこの機能を実現できます。
できる:
ファイル名:=ExtractFilePath(Paramstr(0))+'program.ini';
myinifile:=Tinifile.Create(ファイル名);
4. キーワードの値を読み取る
INI ファイルでサポートされる文字列、整数値、およびブール値の 3 つのデータ型に対して、TINIfiles クラスは、INI ファイル内のキーワードの値を読み取るための 3 つの異なるオブジェクト メソッドを提供します。
定義された変数 vs、vi、および vb がそれぞれ文字列、整数、およびブール型であると仮定します。
vs:=myinifile.Readstring('セクション名','キーワード',デフォルト値);
vi:=myinifile.Readinteger('セクション名','キーワード',デフォルト値);
vb:=myinifile.Readbool('セクション名','キーワード',デフォルト値);
デフォルト値は、キーワードが INI ファイルに存在しない場合に返されるデフォルト値です。
5.INIファイルの書き込み
同様に、TInifile クラスは、文字列、整数、およびブール型のキーワードを INI ファイルに書き込むための 3 つの異なるオブジェクト メソッドも提供します。
myinifile.writestring('セクション名'、'キーワード'、変数または文字列値);
myinifile.writeinteger('セクション名', 'キーワード', 変数または整数値);
myinifile.writebool('セクション名', 'キーワード', 変数または True または False);
INI ファイルが存在しない場合、上記のステートメントにより INI ファイルが自動的に作成されます。
6. キーワードを削除する
Tinifile クラスは、write メソッドを使用してキーワードを追加するだけでなく、キーワードを削除するためのオブジェクト メソッドも提供します。
myinifile.DeleteKey('セクション名','キーワード');
7. セクションの操作
セクションの追加は write メソッドで実行でき、セクションの削除は次のオブジェクト メソッドで実行できます。
myinifile.EraseSection('セクション名');
さらに、Tinifile クラスは、セクションを操作するための 3 つのオブジェクト メソッドも提供します。
myinifile.readsection('セクション名', TStrings 変数); は、指定されたセクション内のすべてのキーワード名を文字列リスト変数に読み取ることができます。
myinifile.readsections(TStrings 変数); は、INI ファイル内のすべてのセクション名を文字列リスト変数に読み取ることができます。
myinifile.readsectionvalues('セクション名', TStrings 変数); は、INI ファイル内の指定されたセクションのすべての行 (キーワード、=、値を含む) を文字列リスト変数に読み取ることができます。
8. リリース
次のステートメントを使用して、適切な場所にある myinifile を解放します。
myinifile.distory;
9. 例
以下では、簡単な例 (図に示すように) を使用して、INI ファイルの作成、読み取り、保存の方法を示します。 myini.ini ファイルには、「プログラム パラメータ」セクションと、ユーザー名 (文字列)、公式ユーザー ステータス (ブール値)、および経過時間 (整数値) の 3 つのキーワードが含まれています。プログラムはフォームの作成時にこのデータを読み取り、フォームの解放時に myini.ini ファイルを書き込みます。
添付ソースプログラム一覧
ユニットユニット1;
インタフェース
用途
Windows、メッセージ、SysUtils、バリアント、クラス、グラフィックス、コントロール、フォーム、
ダイアログ、IniFile、StdCtrls、ExtCtrls;
タイプ
TForm1=クラス(TForm)
編集1:T編集;
編集2:T編集;
チェックボックス1:TCチェックボックス;
タイマー1:Tタイマー;
プロシージャフォーム作成(Sender:TObject);
プロシージャFormDestroy(Sender:TObject);
プロシージャタイマー1タイマー(送信者:TObject);
プライベート
{非公開宣言}
公共
{公的宣言}
終わり;
変数
フォーム1:TForm1;
myinifile:Tinifile;
実装
{$R*.dfm}
プロシージャTForm1.FormCreate(Sender:TObject);
変数
ファイル名:文字列;
始める
ファイル名:=ExtractFilePath(paramstr(0))+'myini.ini';
myinifile:=TInifile.Create(ファイル名);
edit1.Text:=myinifile.readstring('プログラムパラメータ','ユーザー名','デフォルトのユーザー名');
edit2.text:=inttostr(myinifile.readinteger('プログラムパラメータ','実行経過時間',0));
checkbox1.Checked:=myinifile.readbool('プログラムパラメータ','公式ユーザーかどうか',False);
終わり;
プロシージャTForm1.FormDestroy(Sender:TObject);
始める
myinifile.writestring('プログラムパラメータ','ユーザー名',edit1.Text);
myinifile.writeinteger('プログラムパラメータ','経過実行時間',strtoint(edit2.text));
myinifile.writebool('プログラムパラメータ', '公式ユーザーですか', checkbox1.Checked);
myinifile.Destroy;
終わり;
プロシージャTForm1.Timer1Timer(Sender:TObject);
始める
edit2.Text:=inttostr(strtoint(edit2.text)+1);
終わり;
終わり。
この例は、Delphi6.0+WinXP でのデバッグに合格しました。