1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
program testini;
{$mode objfpc}{$H+}
uses
inifiles, classes;
var
i: Integer;
ini: TMemIniFile;
lines: TStrings;
begin
lines:=TStringList.Create();
try
lines.Add('[main]');
lines.Add('key_a=1');
lines.Add(';comment');
lines.Add('key_b =2');
lines.Add('not_valid');
lines.Add('key_c= 3');
lines.Add('key_d="3"');
WriteLn('ini file source:');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
ini:=TMemIniFile.Create('');
try
ini.options:=ini.options+[ifoStripQuotes];
ini.SetStrings(lines);
lines.Clear();
ini.ReadSectionValues('main', lines,[]);
WriteLn('ReadSectionValues (no options):');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
lines.Clear();
ini.ReadSectionValues('main', lines,[]);
WriteLn('ReadSectionValues (no options):');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
lines.Clear();
ini.ReadSectionRaw('main', lines);
WriteLn('ReadSectionRaw (with comments, no invalid):');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
lines.Clear();
ini.ReadSectionValues('main', lines,[svoIncludeInvalid]);
WriteLn('ReadSectionValues (without comments, with invalid):');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
lines.Clear();
ini.ReadSectionValues('main', lines,[svoIncludeComments,svoIncludeInvalid]);
WriteLn('ReadSectionValues (with comments, with invalid):');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
Lines.Clear;
ini.ReadSectionValues('main', lines,[svoIncludeQuotes]);
WriteLn('ReadSectionValues (with quotes):');
for i:=0 to lines.Count-1 do
WriteLn(' ', lines[i]);
finally
ini.Free();
end;
finally
lines.Free();
end
end.
|