summaryrefslogtreecommitdiff
path: root/packages/fcl-base/examples/testini.pp
blob: b58e4d497937d40d57b5c6ea303bc3d1bbfe53f6 (plain)
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.