
Tuesday, January 04, 2011

iwan RFID
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