如何遍历读取ini文件的所有节点

qixmwying 2007-07-25 03:11:37
我现在保存了一个配置文件,
[A]
Left=100;
Height=50;
Width =40;
[B]
Left=30;
Height=40;
Width =20;
现在我如何按照段名,来读取各个段名下面的值,请指教!
...全文
2138 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadowstar 2007-07-29
  • 打赏
  • 举报
回复
一楼不是说得很清楚了。。。。。。。。。。。。。。。。。。

-----------------------------

i_love_pc(杰子)(欢迎加入技术交流QQ群:23640432) ( ) 信誉:100 2007-7-25 15:33:19 得分: 0



ReadSections()


ReadSectionValues()


ReadSection()




qixmwying 2007-07-28
  • 打赏
  • 举报
回复
基本解决
xiaoyuezhong 2007-07-28
  • 打赏
  • 举报
回复
楼主把自已不能实现的代码贴出来看看~
cczlp 2007-07-28
  • 打赏
  • 举报
回复
GetPrivateProfileString
WritePrivateProfileString
misters 2007-07-27
  • 打赏
  • 举报
回复
[A][B]这些需要自己定义,需要知道节点的定义才能存或取出内容
至于节点中的具体内容,a=1,b=2,c=3
这个可以取标记,再根据节点中的标记取内容,没有一点问题,帮助说得很清楚

KenYuan2016 2007-07-26
  • 打赏
  • 举报
回复
需要自己分析,节点的格式定义是自己定义的,像上面,你是以[A] 为一个节点的开始
按行读取,找到[ 为1个新节点的开始配置,同时你读取[A]做为1个节点的索引,然后读取后面的值,按照匹配的方式分别配置你内存中的left ...

没有什么可以直接使用的方法。 节点格式你首先要知道。
yangar9179 2007-07-25
  • 打赏
  • 举报
回复
可以看一下帮助里面的TIniFile
找一下里面有很多东西
yangar9179 2007-07-25
  • 打赏
  • 举报
回复
uses IniFiles;
procedure TForm1.FormActivate(Sender: TObject);

var
AppIni: TIniFile;
begin
AppIni := TIniFile.Create('win.ini');
AppIni.ReadSections(ListBox1.Items);
AppIni.ReadSection('Ports',Listbox2.Items);
AppIni.ReadSectionValues('Ports',ListBox3.Items);
AppIni.Free;
end;
LuoGD 2007-07-25
  • 打赏
  • 举报
回复
怎么不能实现?

TStringList sl = new TStringList();

sl->LoadFromFile("a.ini");

for(long i=0; i<sl->Count; i++)
{
AnsiString aline = sl->Strings[i];
AnsiString name = sl->Names[i];
AnsiString value = sl->Values[name];
}
qixmwying 2007-07-25
  • 打赏
  • 举报
回复
你的方法不能实现呀!
LuoGD 2007-07-25
  • 打赏
  • 举报
回复
什么搞不请啊?
qixmwying 2007-07-25
  • 打赏
  • 举报
回复
楼上的搞不请呀
qixmwying 2007-07-25
  • 打赏
  • 举报
回复
着是你使用过的吗??
我试试 !
LuoGD 2007-07-25
  • 打赏
  • 举报
回复
sl->LoadFromFile("a.ini");

for(long i=0; i<sl->Count; i++)
{
AnsiString aline = sl->Strings[i];
AnsiString name = sl->Names[i];
AnsiString value = sl->Values[name];
}
LuoGD 2007-07-25
  • 打赏
  • 举报
回复
用TStringList;
sl->LoadFromFile("a.ini");

for(long i=0; i<sl->Count; i++)
{
AnsiString aline = sl->Strings[i];
....
}
qixmwying 2007-07-25
  • 打赏
  • 举报
回复
我的段名A,B....等等,是不确定的,我也使用了TStringList了,但是就搞不定呀!
还有什么好方法吗?
misters 2007-07-25
  • 打赏
  • 举报
回复
TStringList *pStringList = new TStringList();
pinifile->ReadSection("A",pStringList);

int nStringListCount = pStringList->Count;

for(int i=0;i<nStringListCount;i++)
{
String sSection = pStringList->Strings[i];
Memoport->Lines->Add(sSection + "=" + pinifile->ReadString("A",
sSection,""));
}
i_love_pc 2007-07-25
  • 打赏
  • 举报
回复
ReadSections()


ReadSectionValues()


ReadSection()

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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