首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎样读取这个ini文件?解决思路

2012-02-24 
怎样读取这个ini文件?ini文件的内容如下:[a]qa0ba2ca1da3wa7qa8规律是qa,ba,ca这些名称后面都包含一

怎样读取这个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;

热点排行