【问题标题】:What is the easiest way to change sections order of INI file in C++在 C++ 中更改 INI 文件的部分顺序的最简单方法是什么
【发布时间】:2012-10-11 09:33:36
【问题描述】:

我正在尝试读取一个 INI 文件并写入另一个 INI 文件,但更改了部分顺序。

Windows API 是否有用于这种 INI 文件处理的工具?是否有首选的开源解决方案?还是我应该尝试手动解析它?

【问题讨论】:

  • GetPrivateProfileSectionNames() 返回部分名称,GetPrivateProfileSection() 返回一个部分。更改顺序毫无意义。并且永远不要使用 api 来阅读它们,它们非常昂贵。读取 one 设置需要 50 毫秒。
  • @HansPassant 感谢您的评论。我将检查该文件一次,以便为另一个顺序至关重要的程序创建一个 ini 文件。因此,使用 GetPrivateProfileSectionNames() 我将获得一个名称数组,并且能够更改顺序,然后查看部分名称并将数据写入新文件...
  • 很难想象你需要不止一次这样做。为什么不直接使用文本编辑器?
  • @HansPassant :) 每个运行我的程序的客户端都会在初始化时执行一次,并且顺序基于用户的环境。这就是我不能使用文本编辑器的原因。
  • @zenpoy:如果部分的顺序很重要,那么它不是真正的 INI 文件。由于顺序很重要,您可以使用 Win32 API PrivateProfile 函数从源文件中读取,但不要使用它们写入目标文件。自己写入文件,然后您可以随意订购。

标签: c++ winapi ini fileparse


【解决方案1】:

Windows 有自己的 C 语言 INI 函数。但既然你提到了 C++,请尝试 Feather INI. Program Options 是来自 Boost 的另一个。

【讨论】:

    【解决方案2】:

    如评论中所述,您可以使用 winapi 函数来执行此操作。 GetPrivateProfileSectionNames 返回 .ini 文件中各部分的名称。然后您可以对其进行迭代并调用 GetPrivateProfileSection() 以获取每个部分的内容。

    【讨论】:

      猜你喜欢
      • 2013-07-06
      • 2012-09-30
      • 2010-09-05
      • 2023-03-17
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多