INIファイルを操作する方法は?
INIファイルは、システムの構成とアプリケーションのパラメーターの保存と設定で重要な役割を果たしているため、VB、VC、VFP、Delphiなどの視覚的なプログラミングファミリは、INIがDelphiで動作するINIファイルを読み書きする方法を提供します。 Delphi3はTinifileクラスを提供するため、ファイルは最も簡単です。これにより、INIファイルを非常に柔軟に処理できるようになります。
1. INIファイルの構造を理解する必要があります。
;コメント
[セクション名]
キーワード=値
...
INIファイルは複数のセクションを許可し、各セクションで複数のキーワードを許可し、その後にキーワードの値が続きます。
値には、文字列、整数値、ブール値の3つのタイプがあります。文字列は引用符なしでINIファイルに保存され、真のブール値は1で表され、誤ったブール値は0で表されます。
コメントはセミコロンで始まります ";"。
2。定義
1.インターフェイスの使用セクションにInifilesを追加します。
2. VAR変数定義部品に行を追加します。
myinifile:Tinifile;
次に、変数MyInifileで作成、オープン、読み取り、書き込み、およびその他の操作を作成できます。
3. iniファイルを開きます
myinifile:= tinifile.create( 'program.ini');
上記の行のステートメントは、変数myinifileと特定のファイルプログラムの間の接続を確立し、変数myinifileを使用してプログラムのキーワード値を読み取り、書き込むことができます。
ブラケット内のファイル名がパスを指定していない場合、プログラム。iniファイルはWindowsディレクトリに保存されることに注意してください。
アプリケーションの現在のディレクトリにプログラムファイルを保存する方法は、完全なパスとファイル名を指定することです。次の2つのステートメントは、この機能を完了できます。
ファイル名:= extractfilepath(paramstr(0))+'program.ini';
4.キーワードの値を読み取ります
INIファイルでサポートされている3つのデータ型の場合、文字列、整数値、ブール値の場合、Tinifilesクラスは、INIファイルのキーワードの値を読み取るための3つの異なるオブジェクトメソッドを提供します。
定義された変数vs、VI、およびVBが、それぞれ文字列、整数、およびブール型であると仮定します。
vs:= myinifile.readstring( 'セクション名'、 'キーワード'、デフォルト値);
vi:= myinifile.readinteger( 'サブセクション名'、 'キーワード'、デフォルト値);
vb:= myinifile.readbool( 'セクション名'、 'キーワード'、デフォルト値);
デフォルト値は、INIファイルにキーワードが存在しない場合に返されるデフォルト値です。
5。iniファイルに書き込みます
同様に、Tinifileクラスは、文字列、整数番号、BooleanキーワードをINIファイルに3つの異なるオブジェクトメソッドを提供します。
myinifile.writestring( 'サブセクション名'、 'キーワード'、変数または文字列値);
myinifile.writeinteger( 'サブセクション名'、 'キーワード'、変数または整数値);
myinifile.writebool( 'サブセクション名'、 'キーワード'、変数またはtrueまたはfalse);
このINIファイルが存在しない場合、上記のステートメントは自動的にINIファイルを作成します。
6.キーワードを削除します
Writeメソッドを使用してキーワードを追加することに加えて、Tinifileクラスは、キーワードを削除するオブジェクトメソッドも提供します。
myinifile.deletekey( 'サブセクション名'、 'キーワード');
7。セクション操作
セクションの追加メソッドを作成することで実行でき、セクションを削除することは、次のオブジェクトメソッドで実行できます。
myinifile.erasesection( 'サブセクション名');
さらに、Tinifileクラスは、サブセクションで動作する3つのオブジェクトメソッドも提供します。
myinifile.readsection( 'セクション名' tstrings変数);
myinifile.readsections(tstrings variable);
myinifile.readsectionValues( 'セクション名'、tstrings変数);
8。リリース
次のステートメントを使用して、適切な場所でmyinifileをリリースします。
myinifile.distory;
9つ
以下は、単純な例(図に示すように)を使用して、INIファイルの作成、読み取り、および保存の方法を実証します。 myini.iniファイルには、サブセクション「プログラムパラメーター」と3つのキーワードが含まれています:ユーザー名(文字列)、公式ユーザー(ブール値)と実行時間(積分値)が含まれています。このプログラムは、このデータをフォーム作成で読み取り、フォームがリリースされたときにmyini.iniファイルを書き込みます。
ソースプログラムのリスト
ユニットユニット1;
インタフェース
用途
Windows、メッセージ、sysutils、クラス、グラフィックス、コントロール、フォーム、ダイアログ、inifiles、stdctrls、extctrls;
タイプ
tform1 = class(tform)
編集1:tedit;
チェックボックス:tcheckbox;
edit2:tedit;
ラベル1:tlabel;
ラベル2:tlabel;
Timer1:Ttimer;
ラベル3:tlabel;
proctureformcreate(sender:tobject);
procedureformdestroy(sender:tobject);
proceduretimer1timer(sender:tobject);
プライベート
{privatedeclarations}
公共
{publicdeclarations}
終わり;
var
form1:tform1;
実装
var
myinifile:Tinifile;
{$ r*.dfm}
procedureTform1.formcreate(sender:tobject);
var
ファイル名:文字列;
始める
ファイル名:= extractfilepath(paramstr(0))+'myini.ini';
myinifile:= tinifile.create(filename);
edit1.text:= myinifile.readstring( 'プログラムパラメーター'、 'ユーザー名'、 'デフォルトユーザー名');
edit2.text:= inttostr(myinifile.readinteger( 'program parameters'、 'runned time'、0));
Checkbox1.checked:= myinifile.readbool( 'プログラムパラメーター'、 'それは公式ユーザー'、false);
終わり;
procedureTform1.FormDestroy(送信者:tobject);
始める
myinifile.writestring( 'プログラムパラメーター'、 'ユーザー名'、edit1.text);
myinifile.writeinteger( 'プログラムパラメーター'、「実行された時間」、strtoint(edit2.text));
myinifile.writebool( 'プログラムパラメーター'、 'それは公式ユーザーです'、checkbox1.checked);
myinifile.destroy;
終わり;
proceduretform1.timer1timer(sender:tobject);
始める
edit2.text:= inttoStr(strtoint(edit2.text)+1);
終わり;
終わり。