怎样读取这个ini文件?
ini文件的内容如下:
[a]
qa=0
ba=2
ca=1
da=3
wa=7
qa=8
规律是qa,ba,ca这些名称后面都包含一个a,
怎样将等号后面的内容读到listbox里面?
[解决办法]
myinifile.readsection(小节名,TStrings变量);
自己再处理一下就可以了
[解决办法]
uses IniFiles;
procedure TForm1.FormCreate(Sender: TObject);
var
ininame: TStringList;
iniline: TStringList;
iniReg: TIniFile;
i: integer;
begin
iniReg := TIniFile.Create( 'D:\A.ini ');
ininame := TStringList.Create();
iniline := TStringList.Create();
iniReg.ReadSection( 'a ', ininame);
iniReg.ReadSectionValues( 'a ', iniline);
for i := 0 to ininame.Count-1 do
ListBox1.Items.Add(iniline.Values[ininame[i]]);
iniReg.Free();
ininame.Free();
iniline.Free();
end;
[解决办法]
有两个qa恐怕不行
[解决办法]
很简单啊,你判断那个小结点的名字的最后一个字符是不是 'a '就可以了啊,程序如下:
可以写一个函数,专门用来处理你这种情况:
function GetValuesLikeStr(Ini: TInifile;NodeName,Str: string): TstringList;
var
List,ResultList: TstringList;
i: integer;
begin
List := TStringList.Create;
ResultList := TStringList.create;
Ini.ReadSection( 'a ',List);
for i := 0 to List.Count - 1 do
begin
if RightStr(List.Strings[i],Length(Str)) = Str then
ResultList.Add(Ini.ReadString(NodeName,List.strings[i], ' '));
end;
Result := ResultList;
end;
此时你就可以调用函数如下GetValuesLikeStr(Ini, 'a ', 'a ')来得到他的值,但是有一点要注意的是,里面的结点不要搞同名的,否则,只会读取其中一个
[解决办法]
uses IniFiles;
procedure TForm1.FormCreate(Sender: TObject);
var
ininame: TStringList;
iniline: TStringList;
iniReg: TIniFile;
i: integer;
begin
iniReg := TIniFile.Create( 'D:\A.ini ');
ininame := TStringList.Create();
iniline := TStringList.Create();
iniReg.ReadSection( 'a ', ininame);
iniReg.ReadSectionValues( 'a ', iniline);
for i := 0 to ininame.Count-1 do
if ininame[i][Length(ininame[i])] = 'a ' then
ListBox1.Items.Add(iniline.Values[ininame[i]]);
iniReg.Free();
ininame.Free();
iniline.Free();
end;