BooleanをTrue/Falseという文字でIniファイルに保存
|
69 |
BooleanIniWriteRead |
動作確認 |
Delphi2007 |
更新日 |
2008/01/31(木) |
BooleanをIniファイルやレジストリに保存/読込するときに
普通にTIniFile.WriteBoolやReadBoolを使うと
True = 1
False= 0
になって数値として書き込まれてしまいます。
ちゃんと人間でも読めるように'True' 'False'の
文字列そのままが記入されるように
関数を作ってみました。
────────────────────
function AppIniFilePath: String;
begin
Result := ChangeFileExt(ParamStr(0), '.ini');
end;
{-------------------------------
// IniファイルにTrue/Falseの形式で
Booleanを保存する為の関数
機能: WriteBoolStr(Ini, 'Section', 'Ident', True);
ReadBoolStr(Ini, 'Section', 'Ident', False);
このように書くと
[Section]
Ident=True
このようにIniファイルに記述される
引数説明: TIniFileクラスと同等
備考: uses IniFiles追加
履歴: 2003/09/06
//------------------------------}
//気に食わないのでSysUtils.BoolToStrのデフォルト引数を変更する。
function BoolToStr(Value: Boolean): String; overload;
begin
Result := SysUtils.BoolToStr(Value, True);
end;
procedure WriteBoolStr(Ini: TCustomIniFile; Section, Ident:String;
Value: Boolean);
begin
Ini.WriteString(Section, Ident, BoolToStr(Value));
end;
function ReadBoolStr(Ini: TCustomIniFile; Section, Ident: String;
Default: Boolean): Boolean;
begin
Result := StrToBoolDef(
Ini.ReadString(Section, Ident, ''), Default);
end;
//------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(AppIniFilePath);
try
WriteBoolStr(Ini, 'Section', 'Ident', True);
finally
Ini.UpdateFile;
Ini.Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Ini: TIniFile;
Value1: Boolean;
begin
Ini := TIniFile.Create(AppIniFilePath);
try
Value1 := ReadBoolStr(Ini, 'Section', 'Ident', False);
finally
Ini.UpdateFile;
Ini.Free;
end;
Memo1.Lines.Add( BoolToStr(Value1) );
end;
────────────────────
動作確認画面です
|