当前位置:  开发笔记 > 编程语言 > 正文

在C++中解析INI文件的最简单方法是什么?

如何解决《在C++中解析INI文件的最简单方法是什么?》经验,为你挑选了7个好方法。

我正在尝试使用C++解析INI文件.关于什么是实现这一目标的最佳方法的任何提示?我应该使用Windows API工具进行INI文件处理(我完全不熟悉),一个开源解决方案或尝试手动解析它?



1> Adam Mitz..:

如果您需要跨平台解决方案,请尝试Boost的程序选项库.


这是要走的路,我不明白为什么人们只是投票不那么一般的答案.
@Gollum,听起来像Windows是一个给定的依赖.使用程序选项库意味着承担另一个依赖项.有时这不是什么大问题,有时候也是.
@malat我很困惑,我没有提及downvoting?
他正在尝试读取现有的INI文件,使用boost不是答案,因为它使用的是INI格式.

2> Joel Spolsky..:

您可以使用Windows API函数,例如GetPrivateProfileString()和GetPrivateProfileInt().


MSDN不推荐使用GetPrivateProfileInt()和其他函数,因为它们已过时,但仍仅提供与旧的16位系统的兼容性.而不是那种使用其他方法.https://msdn.microsoft.com/en-us/library/windows/desktop/ms724345(v=vs.85).aspx

3> Lars Mæhlum..:

我从来没有解析过ini文件,所以我不能在这个问题上过于具体.
但我有一个建议:只要现有车轮满足您的要求,
不要重新发明轮子

http://en.wikipedia.org/wiki/INI_file#Accessing_INI_files
http://sdl-cfg.sourceforge.net/
http://sourceforge.net/projects/libini/
http://www.codeproject.com/KB /files/config-file-parser.aspx

祝好运 :)



4> Harold Ekstr..:

我使用SimpleIni.它是跨平台的.



5> Dat Chu..:

如果你已经在使用Qt

QSettings my_settings("filename.ini", QSettings::IniFormat);

然后读取一个值

my_settings.value("GroupName/ValueName", <>).toInt()

还有许多其他转换器可以将INI值转换为标准类型和Qt类型.有关更多信息,请参阅QSettings上的Qt文档.



6> Mike..:

这个问题有点陈旧,但我会发布我的答案.我已经测试了各种INI类(你可以在我的网站上看到它们),我也使用simpleIni,因为我想在windows和winCE上使用INI文件.Window的GetPrivateProfileString()仅适用于winCE上的注册表.

使用simpleIni很容易阅读.这是一个例子:

#include "SimpleIni\SimpleIni.h"    
CSimpleIniA ini;
ini.SetUnicode();
ini.LoadFile(FileName);
const char * pVal = ini.GetValue(section, entry, DefaultStr);



7> nimcap..:

inih是一个用C编写的简单的ini解析器,它也带有一个C++包装器.用法示例:

#include "INIReader.h"    

INIReader reader("test.ini");

std::cout << "version="
          << reader.GetInteger("protocol", "version", -1) << ", name="
          << reader.Get("user", "name", "UNKNOWN") << ", active="
          << reader.GetBoolean("user", "active", true) << "\n";

作者还在此处列出了现有库.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有