Tuesday, January 4, 2011

Reading and writing INI files

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

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Kang Iwan K-sev | Thank's for your visit To My Site - Ridwan Mulyana | Cibeureum