6 function config_open(FileName
: string): Boolean;
7 function config_read_int(param
: string; def
: Integer): Integer;
8 function config_read_str(param
: string; def
: string): string;
9 function config_read_bool(param
: string; def
: Boolean): Boolean;
10 procedure config_close();
17 cfg_data
: array of ShortString = nil;
19 function tostr(i
: Integer): string;
24 function toint(s
: string; var i
: Integer): Boolean;
33 function readparam(param
: string; var s
: string): Boolean;
35 a
, b
, len
, d_len
: Integer;
39 if cfg_data
= nil then Exit
;
41 d_len
:= Length(cfg_data
);
43 for a
:= 0 to d_len
do
45 len
:= Length(cfg_data
[a
]);
49 if cfg_data
[a
][b
] = '=' then
50 if Copy(cfg_data
[a
], 1, b
-1) = param
then
52 s
:= Copy(cfg_data
[a
], b
+1, len
);
59 function config_open(FileName
: string): Boolean;
63 len
, d_len
, line
: Integer;
67 if cfg_data
<> nil then config_close();
69 AssignFile(f
, FileName
);
75 if IOResult
<> 0 then Exit
;
78 SetLength(cfg_data
, d_len
);
86 if len
< 3 then Continue
;
87 if str
[1] = ';' then Continue
;
92 SetLength(cfg_data
, d_len
);
95 cfg_data
[line
] := str
;
104 function config_read_int(param
: string; def
: Integer): Integer;
110 if not readparam(param
, s
) then Exit
;
112 if not toint(s
, Result
) then Result
:= def
;
115 function config_read_str(param
: string; def
: string): string;
121 if not readparam(param
, s
) then Exit
;
126 function config_read_bool(param
: string; def
: Boolean): Boolean;
132 if not readparam(param
, s
) then Exit
;
137 procedure config_close();
139 if cfg_data
<> nil then cfg_data
:= nil;