📄 jclinifiles.pas
字号:
{**************************************************************************************************}
{ }
{ 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 Developer of the Original Code is John C Molyneux. }
{ Portions created by John C Molyneux are Copyright (C) John C Molyneux. }
{ }
{ Contributors: }
{ Eric S. Fisher }
{ John C Molyneux }
{ Petr Vones (pvones) }
{ Robert Marquardt (marquardt) }
{ Robert Rossmair (rrossmair) }
{ }
{**************************************************************************************************}
// Last modified: $Date: 2005/02/24 16:34:40 $
// For history see end of file
unit JclIniFiles;
{$I jcl.inc}
interface
uses
Classes, IniFiles, SysUtils;
// Initialization (ini) Files
function IniReadBool(const FileName, Section, Line: string): Boolean; // John C Molyneux
function IniReadInteger(const FileName, Section, Line: string): Integer; // John C Molyneux
function IniReadString(const FileName, Section, Line: string): string; // John C Molyneux
procedure IniWriteBool(const FileName, Section, Line: string; Value: Boolean); // John C Molyneux
procedure IniWriteInteger(const FileName, Section, Line: string; Value: Integer); // John C Molyneux
procedure IniWriteString(const FileName, Section, Line, Value: string); // John C Molyneux
// 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.BeginUpdate;
try
Strings.Clear;
Count := ReadInteger(Section, ItemCountName, 0);
for I := 0 to Count - 1 do
Strings.Add(ReadString(Section, IntToStr(I), ''));
finally
Strings.EndUpdate;
end;
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;
// History:
// $Log: JclIniFiles.pas,v $
// Revision 1.9 2005/02/24 16:34:40 marquardt
// remove divider lines, add section lines (unfinished)
//
// Revision 1.8 2004/09/28 14:22:01 rrossmair
// removed PH contributions
//
// Revision 1.7 2004/07/30 07:20:25 marquardt
// fixing TStringLists, adding BeginUpdate/EndUpdate
//
// Revision 1.6 2004/06/02 03:23:46 rrossmair
// cosmetic changes in several units (code formatting, help TODOs processed etc.)
//
// Revision 1.5 2004/05/14 15:24:46 rrossmair
// fixed header
//
// Revision 1.4 2004/05/05 00:04:11 mthoma
// Updated headers: Added donors as contributors, adjusted the initial authors, added cvs names when they were not obvious. Changed $data to $date where necessary,
//
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -