在不使用boost覆盖整个ini的情况下写入ini文件值

Write ini file values without overwriting whole ini with boost

本文关键字:ini 情况下 文件 boost 覆盖      更新时间:2023-10-16

我有一个函数可以写入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
  2. 更新ptree中的值
  3. 将结果树写入INI

请注意,并非所有信息都将100%往返(有关限制,请参阅文档)

另请参阅:c++boost库-在不覆盖的情况下写入ini文件?

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