Модуль для работы с ini файлами

=== Модуль для работы с ini файлами ===
Вот мой модуль для работы с Ini файлами... Должен всем пригодиться...
// Модуль для работы с данными в конфигурационном файле.
// Функции упрощают использование конфиг. файлов.
// Данный материал можно изменять по Вашему усмотрению...
// При нахождении ошибок пишите на guedda@yandex.ru
unit MyIni.pas
interface
uses
 IniFiles;
procedure WriteIniData(Section, Ident, Value: string);
procedure WriteIniDataInt(Section, Ident: string; Value: Integer);
procedure WriteIniDataBool(Section, Ident: string; Value: boolean);
function ReadIniData(Section, Ident: string; Default: string = ): string;
function ReadIniDataInt(Section, Ident: string; Default: Integer = 0): Integer;
function ReadIniDataBool(Section, Ident: string; Default: boolean = false): boolean;
implementation
var
 IniFile: TIniFile;
 Path: string;
procedure WriteIniData(Section, Ident, Value: string);
begin
 IniFile := TIniFile.Create(Path + '\config.ini');
 IniFile.WriteString(Section, Ident, Value);
 IniFile.Free;
end;
procedure WriteIniDataInt(Section, Ident: string; Value: Integer);
begin
 IniFile := TIniFile.Create(Path + '\config.ini');
 IniFile.WriteInteger(Section, Ident, Value);
 IniFile.Free;
end;
procedure WriteIniDataBool(Section, Ident: string; Value: boolean);
begin
 IniFile := TIniFile.Create(Path + '\config.ini');
 IniFile.WriteBool(Section, Ident, Value);
 IniFile.Free;
end;
function ReadIniData(Section, Ident: string; Default: string = ): string;
begin
 IniFile := TIniFile.Create(Path + '\config.ini');
 Result := IniFile.ReadString(Section, Ident, Default);
 IniFile.Free;
end;
function ReadIniDataInt(Section, Ident: string; Default: Integer = 0): Integer;
begin
 IniFile := TIniFile.Create(Path + '\config.ini');
 Result := IniFile.ReadInteger(Section, Ident, Default);
 IniFile.Free;
end;
function ReadIniDataBool(Section, Ident: string; Default: Boolean = False): boolean;
begin
 IniFile := TIniFile.Create(Path + '\config.ini');
 Result := IniFile.ReadBool(Section, Ident, Default);
 IniFile.Free;
end;
initialization
 GetDir(0, Path);
end.
Author: Guedda
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02310
----
unit USDKINIFiles;
{ From Windows Messages SDK }
interface
uses Windows, SysUtils;
type
 TINIFile = class(TObject)
 private
 FFileName: string;
 public
 constructor Create(const FileName: string);
 destructor Destroy; override;
 function ReadString(const Section, Key, Default: string): string;
 function ReadInteger(const Section, Key: string; Default: longint): longint;
 function ReadBool(const Section, Key: string; Default: boolean): boolean;
 function WriteString(const Section, Key, Value: string): boolean;
 function WriteInteger(const Section, Key: string; Value: longint): boolean;
 function WriteBool(const Section, Key: string; Value: boolean): boolean;
 procedure UpdateFile;
 property FileName: string read FFileName;
 end;
implementation
{ TINIFile }
constructor TIniFile.Create(const FileName: string);
begin
 FFileName := FileName;
end;
destructor TIniFile.Destroy;
begin
 UpdateFile;
 inherited Destroy;
end;
function TIniFile.ReadBool(const Section, Key: string; Default: boolean): boolean;
begin
 Result := ReadInteger(Section, Key, Ord(Default)) <> 0;
end;
function TIniFile.ReadInteger(const Section, Key: string; Default: integer): longint;
var
 IntStr: string;
begin
 IntStr := ReadString(Section, Key, );
 if (Length(IntStr) > 2) and (IntStr[1] = '0') and
 ((IntStr[2] = 'X') or (IntStr[2] = 'x')) then
 IntStr := '$' + Copy(IntStr, 3, MaxInt);
 Result := StrToIntDef(IntStr, Default);
end;
function TIniFile.ReadString(const Section, Key, Default: string): string;
var
 Buffer: array[0..2047] of char;
begin
 SetString(Result, Buffer, GetPrivateProfileString(PChar(Section),
 PChar(Key), PChar(Default), Buffer, SizeOf(Buffer), PChar(FFileName)));
end;
procedure TIniFile.UpdateFile;
begin
 WritePrivateProfileString(nil, nil, nil, PChar(FFileName));
end;
function TIniFile.WriteBool(const Section, Key: string; Value: boolean): boolean;
const
 Values: array[boolean] of string = ('0', '1');
begin
 Result := WriteString(Section, Key, Values[Value]);
end;
function TIniFile.WriteInteger(const Section, Key: string; Value: integer): boolean;
begin
 Result := WriteString(Section, Key, IntToStr(Value));
end;
function TIniFile.WriteString(const Section, Key, Value: string): boolean;
begin
 Result := WritePrivateProfileString(PChar(Section), PChar(Key),
 PChar(Value), PChar(FFileName));
end;
end.
Author: Rrader
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02311