Reading and writing INI files
Here is an overloaded group of commands to read from or write to an INI file. The routines are overloaded based on the
d parameter.
s is the [GROUP],
k is Left side (key),
d is the default or new parameter and
f is the filename to use.
function GetIni(s,k: string; d: boolean; f: string=''): boolean; overload;
var
ini: TMemIniFile;
begin
Result := d;
if f = '' then
begin
ini := TMemIniFile.Create(lowercase(ChangeFileExt(ParamStr(0),'.ini')));
end
else
begin
if not FileExists(f) then Exit;
ini := TMemIniFile.Create(f);
end;
if ini.ReadString(s,k,'') = '' then
begin
ini.WriteBool(s,k,d);
ini.UpdateFile;
end;
Result := ini.ReadBool(s,k,d);
FreeAndNil(ini);
end;
function SetIni(s,k: string; d: boolean; f: string=''): boolean; overload;
var
ini: TMemIniFile;
begin
Result := d;
if f = '' then
begin
ini := TMemIniFile.Create(lowercase(ChangeFileExt(ParamStr(0),'.ini')));
end
else
begin
if not FileExists(f) then Exit;
ini := TMemIniFile.Create(f);
end;
ini.WriteBool(s,k,d);
ini.UpdateFile;
Result := ini.ReadBool(s,k,d);
FreeAndNil(ini);
end;
function GetIni(s,k: string; d: integer; f: string=''): integer; overload;
var
ini: TMemIniFile;
begin
Result := d;
if f = '' then
begin
ini := TMemIniFile.Create(lowercase(ChangeFileExt(ParamStr(0),'.ini')));
end
else
begin
if not FileExists(f) then Exit;
ini := TMemIniFile.Create(f);
end;
if ini.ReadString(s,k,'') = '' then
begin
ini.WriteInteger(s,k,d);
ini.UpdateFile;
end;
Result := ini.ReadInteger(s,k,d);
FreeAndNil(ini);
end;
function SetIni(s,k: string; d:integer; f: string=''): integer; overload;
var
ini: TMemIniFile;
begin
Result := d;
if f = '' then
begin
ini := TMemIniFile.Create(lowercase(ChangeFileExt(ParamStr(0),'.ini')));
end
else
begin
if not FileExists(f) then Exit;
ini := TMemIniFile.Create(f);
end;
ini.WriteInteger(s,k,d);
ini.UpdateFile;
Result := ini.ReadInteger(s,k,d);
FreeAndNil(ini);
end;
function GetIni(s,k: string; d: string; f: string=''): string; overload;
var
ini: TMemIniFile;
begin
Result := d;
if f = '' then
begin
ini := TMemIniFile.Create(lowercase(ChangeFileExt(ParamStr(0),'.ini')));
end
else
begin
if not FileExists(f) then Exit;
ini := TMemIniFile.Create(f);
end;
if ini.ReadString(s,k,'') = '' then
begin
ini.WriteString(s,k,d);
ini.UpdateFile;
end;
Result := ini.ReadString(s,k,d);
FreeAndNil(ini);
end;
function SetIni(s,k: string; d: string; f: string=''): string; overload;
var
ini: TMemIniFile;
begin
Result := d;
if f = '' then
begin
ini := TMemIniFile.Create(lowercase(ChangeFileExt(ParamStr(0),'.ini')));
end
else
begin
if not FileExists(f) then Exit;
ini := TMemIniFile.Create(f);
end;
ini.WriteString(s,k,d);
ini.UpdateFile;
Result := ini.ReadString(s,k,d);
FreeAndNil(ini);
end;
Source : http://www.delphidabbler.com/tips/59
0 comments:
Post a Comment