testini.pp 1.8 KB

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