在如下配置中;有没有办法处理各个部分。
我正在寻找一种以可靠的方式验证下面各个“服务器”部分的方法。
[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
答案 0 :(得分:13)
使用boost::program_options
解析INI文件时,选项名称必须以其封闭的部分名称作为前缀。
换句话说,部分是选项'标识符'的一部分,但我认为您无法识别给定server.ip
变量所属的部分(以及因此,这是相关的server.password
)。
我认为您应该考虑Boost.PropertyTree(也支持INI文件解析)来执行此任务。
答案 1 :(得分:2)
来自here:
选项名称是相对于节名称的,因此以下配置文件部分:
[gui.accessibility]
visual_bell=yes
相当于
gui.accessibility.visual_bell=yes
但目前无法区分具有相同名称的部分。
更新:
Qt的QSettings通常通过使用“/ n”从数组中后缀值(section?)来解决这个问题。所以你可以使用:
[server/0]
...
[server/1]
...
[server/2]
...