从ini文件中读取多个值到TCombobox中

时间:2016-06-06 13:51:41

标签: delphi delphi-xe8

我有一个ini文件,其中包含以下内容:

[Colours]
1 = Red
2 = Blue
3 = Green
4 = Yellow

在我的应用程序中,我有一个TComboBox,我想填充ini文件中的颜色。

有谁知道我该怎么做?

谢谢,

2 个答案:

答案 0 :(得分:5)

您可以使用time.Minutes获取部分中的名称列表,然后迭代以获取值:

TIniFile.ReadSection()

作为替代方案,您还可以将该部分中的名称/值对转储为单个procedure TForm1.LoadFile(const AFilename: String); var I: TIniFile; L: TStringList; X: Integer; N: String; V: String; begin I:= TIniFile.Create(AFilename); try L:= TStringList.Create; try ComboBox1.Items.Clear; I.ReadSection('Colours', L); for X := 0 to L.Count-1 do begin N:= L[X]; //The Name V:= I.ReadString('Colours', N, ''); //The Value ComboBox1.Items.Add(V); end; finally L.Free; end; finally I.Free; end; end; ,并使用字符串列表的内置功能读取每个值...

TStringList

在旁注中,Ini文件在=符号的两侧没有空格,除非您希望将该空格作为实际名称或值的一部分。

答案 1 :(得分:1)

试试这个,而不是两次读取文件:

uses IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
var
  lIni : TIniFile;
  i: Integer;
begin
  lIni := TIniFile.Create('c:\MyFile.ini');
  try
    lIni.ReadSectionValues('Colours', ComboBox1.Items);
    for i := 0 to ComboBox1.Items.Count - 1 do
      ComboBox1.Items[i] := ComboBox1.Items.ValueFromIndex[i];
  finally
    FreeAndNil(lIni);
  end;
end;