写入 ini 文件值而不用 boost 覆盖整个 ini

Posted

技术标签:

【中文标题】写入 ini 文件值而不用 boost 覆盖整个 ini【英文标题】:Write ini file values without overwriting whole ini with boost 【发布时间】:2015-03-31 11:56:05 【问题描述】:

我有写一段 ini 文件的函数:

boolean saveSSVar()

    using boost::property_tree::ptree;


    ptree pt;
    pt.put(SRV_ID, ID);
    pt.put(SRV_LOG_LEVEL, LogLevel);



    write_ini( INI_FILE_NAME, pt );

    return true;

问题是它覆盖了整个文件而不是一个部分。如何解决这个问题?

【问题讨论】:

【参考方案1】:

只是

    读入原始INI 更新ptree中的值 将结果树写入 INI

请注意,并非所有信息都会 100% 往返(请参阅 the documentation 了解限制)

另见:c++ boost library - writing to ini file without overwriting?

【讨论】:

【参考方案2】:

最简单的方法是将 ptree 保持为全局或静态。

【讨论】:

以上是关于写入 ini 文件值而不用 boost 覆盖整个 ini的主要内容,如果未能解决你的问题,请参考以下文章

使用 INI 文件提升属性树

每次我写入 excel 时,它都会用一个空白文件覆盖整个文件 - PUZZLED

如何在循环中更新 html 标记的值而不覆盖前几轮

当值部分不存在时使用 Boost 属性树读取 INI 文件

如何使用Boost解析ini文件

指针的Boost序列化保存指针的十六进制值而不是对象的内容