如何读取一个键对应多个值的 ini 文件?

lidelu 2005-01-20 01:54:01
在ini文件中,一个键对应了多个值,如何读取?
由于我不知道有几个值,所以无法用循环或者计数的方法来读取键值。

比如,如下的ini文件内容,怎样才能做到 link 对应的所有值都能读取?

alert = on
login = 1
link = http://www.sina.com/
link = http://www.sohu.com/
link = http://www.163.com/
password = 123456
link = http://www.msn.com/
...
...全文
1010 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidelu 2005-01-25
  • 打赏
  • 举报
回复
我知道了 用TMemIniFile可以做到,但是TIniFile不可以。
楼上的知道这两种控件有什么区别吗?
谢谢
3996906 2005-01-24
  • 打赏
  • 举报
回复
实践证明:ini文件的值前面一定要有等号,否则无法读取。
---------------------------------------------------------------------------------

呵呵,这样说是荒唐的~~~~~~~~~我这样用了~~~~~~`用的很好
lidelu 2005-01-24
  • 打赏
  • 举报
回复
1楼和3楼说的没用
实践证明:ini文件的值前面一定要有等号,否则无法读取。
ReadSectionValues读取的值,会把键、等号和值一起读取
不过还是谢谢各位了
3996906 2005-01-20
  • 打赏
  • 举报
回复
只对link就写
TStringList * StrList = new TStringList();

memIni->ReadSectionValues("link",this->StrList);

ini文件里写

[link]
http://www.sina.com/
http://www.sohu.com/
http://www.163.com/
...

用的时候StrList->String[i]
chiengod 2005-01-20
  • 打赏
  • 举报
回复
如果仅仅读link的值,就要做写判断了:
TStringList * StrList = new TStringList();
TStringList * StrList2 = new TStringList();
memIni->ReadSectionValues("aaaaa",this->StrList);
memIni->ReadSection("aaaaa",this->StrList2);
for(int i=0;i<StrList2->Count;i++)
{
AnsiString ss=StrList2->String[i];
ss=ss.SubString(1,4);
if(ss="link")
ShowMessage(StrList->String[i]);
}
delete StrList ,StrList 2;
3996906 2005-01-20
  • 打赏
  • 举报
回复
TStringList * StrList = new TStringList();

memIni->ReadSectionValues("aaaaa",this->StrList);

ini文件里写

[aaaaa]
on
1
http://www.sina.com/
http://www.sohu.com/
http://www.163.com/
...

用的时候StrList->String[i]

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧