testini.pp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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,[svoIncludeComments]);
  33. WriteLn('ReadSectionValues (with comments, no invalid):');
  34. for i:=0 to lines.Count-1 do
  35. WriteLn(' ', lines[i]);
  36. lines.Clear();
  37. ini.ReadSectionValues('main', lines,[svoIncludeInvalid]);
  38. WriteLn('ReadSectionValues (without comments, with invalid):');
  39. for i:=0 to lines.Count-1 do
  40. WriteLn(' ', lines[i]);
  41. lines.Clear();
  42. ini.ReadSectionValues('main', lines,[svoIncludeComments,svoIncludeInvalid]);
  43. WriteLn('ReadSectionValues (with comments, with invalid):');
  44. for i:=0 to lines.Count-1 do
  45. WriteLn(' ', lines[i]);
  46. Lines.Clear;
  47. ini.ReadSectionValues('main', lines,[svoIncludeQuotes]);
  48. WriteLn('ReadSectionValues (with quotes):');
  49. for i:=0 to lines.Count-1 do
  50. WriteLn(' ', lines[i]);
  51. finally
  52. ini.Free();
  53. end;
  54. finally
  55. lines.Free();
  56. end
  57. end.