9

在如下配置中;有没有办法处理各个部分。

我正在寻找一种方法来以可靠的方式验证下面的各个“服务器”部分。

[basic]
number_of_servers=3

[server]
ip=10.20.30.40
password=sdfslkhf    

[server]
ip=10.20.30.41
password=sdfslkhf

[server]
ip=10.20.30.42
password=sdfslkhf

[server]
password=sdfslkhf

[server]
ip=10.20.30.42
4

2 回答 2

13

用于boost::program_options解析 INI 文件时,选项名称必须以它们的封闭部分名称作为前缀。

换句话说,节是选项“标识符”的一部分,但我认为您没有办法识别给定变量属于哪个server.ip节(因此,哪个是关联的server.password)。

我认为您应该为此任务考虑Boost.PropertyTree(它也支持 INI 文件解析)。

于 2010-12-22T12:43:06.000 回答
2

这里

选项名称与节名称相关,因此以下配置文件部分:

  [gui.accessibility]
  visual_bell=yes

相当于

  gui.accessibility.visual_bell=yes

但是目前没有办法区分同名的部分。

更新:

Qt 的 QSettings 通常通过使用“/n”对数组中的值(部分?)进行后缀来解决这个问题。所以你可以使用:

[server/0]
...
[server/1]
...
[server/2]
...
于 2010-12-22T12:46:36.080 回答