{**************************************************************************************************}
{ }
{ Project JEDI Code Library (JCL) }
{ }
{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); }
{ you may not use this file except in compliance with the License. You may obtain a copy of the }
{ License at http://www.mozilla.org/MPL/ }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
{ ANY KIND, either express or implied. See the License for the specific language governing rights }
{ and limitations under the License. }
{ }
{ The Original Code is JclIniFiles.pas. }
{ }
{ The Initial Developers of the Original Code are documented in the accompanying help file }
{ JCLHELP.hlp. Portions created by these individuals are Copyright (C) of these individuals. }
{ }
{**************************************************************************************************}
{ }
{ Unit owner: Eric S. Fisher }
{ }
{**************************************************************************************************}
// $Id: JclIniFiles.pas,v 1.2 2004/04/14 21:55:07 druid Exp $
unit JclIniFiles;
{$I jcl.inc}
{$IFDEF SUPPORTS_WEAKPACKAGEUNIT}
{$WEAKPACKAGEUNIT ON}
{$ENDIF SUPPORTS_WEAKPACKAGEUNIT}
interface
uses
Classes, IniFiles, SysUtils;
//--------------------------------------------------------------------------------------------------
// Initialization (ini) Files
//--------------------------------------------------------------------------------------------------
function IniReadBool(const FileName, Section, Line: string): Boolean;
function IniReadInteger(const FileName, Section, Line: string): Integer;
function IniReadString(const FileName, Section, Line: string): string;
procedure IniWriteBool(const FileName, Section, Line: string; Value: Boolean);
procedure IniWriteInteger(const FileName, Section, Line: string; Value: Integer);
procedure IniWriteString(const FileName, Section, Line, Value: string);
//--------------------------------------------------------------------------------------------------
// Initialization (ini) Files helper routines
//--------------------------------------------------------------------------------------------------
procedure IniReadStrings(IniFile: TCustomIniFile; const Section: string; Strings: TStrings);
procedure IniWriteStrings(IniFile: TCustomIniFile; const Section: string; Strings: TStrings);
implementation
//==================================================================================================
// Initialization Files
//==================================================================================================
function IniReadBool(const FileName, Section, Line: string): Boolean;
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FileName);
try
Result := Ini.ReadBool(Section, Line, False);
finally
Ini.Free;
end;
end;
//--------------------------------------------------------------------------------------------------
function IniReadInteger(const FileName, Section, Line: string): Integer;
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FileName);
try
Result := Ini.ReadInteger(Section, Line, 0);
finally
Ini.Free;
end;
end;
//--------------------------------------------------------------------------------------------------
function IniReadString(const FileName, Section, Line: string): string;
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FileName);
try
Result := Ini.ReadString(Section, Line, '');
finally
Ini.Free;
end;
end;
//--------------------------------------------------------------------------------------------------
procedure IniWriteBool(const FileName, Section, Line: string; Value: Boolean);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FileName);
try
Ini.WriteBool(Section, Line, Value);
finally
Ini.Free;
end;
end;
//--------------------------------------------------------------------------------------------------
procedure IniWriteInteger(const FileName, Section, Line: string; Value: Integer);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FileName);
try
Ini.WriteInteger(Section, Line, Value);
finally
Ini.Free;
end;
end;
//--------------------------------------------------------------------------------------------------
procedure IniWriteString(const FileName, Section, Line, Value: string);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(FileName);
try
Ini.WriteString(Section, Line, Value);
finally
Ini.Free;
end;
end;
//==================================================================================================
// Initialization (ini) Files helper routines
//==================================================================================================
const
ItemCountName = 'Count';
//--------------------------------------------------------------------------------------------------
procedure IniReadStrings(IniFile: TCustomIniFile; const Section: string; Strings: TStrings);
var
Count, I: Integer;
begin
with IniFile do
begin
Strings.Clear;
Count := ReadInteger(Section, ItemCountName, 0);
for I := 0 to Count - 1 do
Strings.Add(ReadString(Section, IntToStr(I), ''));
end;
end;
//--------------------------------------------------------------------------------------------------
procedure IniWriteStrings(IniFile: TCustomIniFile; const Section: string; Strings: TStrings);
var
I: Integer;
begin
with IniFile do
begin
EraseSection(Section);
WriteInteger(Section, ItemCountName, Strings.Count);
for I := 0 to Strings.Count - 1 do
WriteString(Section, IntToStr(I), Strings[I]);
end;
end;
end.