解析类INI配置文件
问题描述:
我在写一个类似INI的配置文件,我想知道在C/C++中解析它的最佳方法。我在POSIX上写它,所以我会用#代替。没关系。我只想知道,是否有某种教程,解析事物或其他东西的文章。解析类INI配置文件
答
通常在C++基础知识中,boost有一个可以读取ini文件的库。实际上在两个库,这取决于你想要达到什么目的:
- 提升程序选项允许您从管理命令行或INI或混合源方案选择:http://www.boost.org/doc/libs/1_44_0/doc/html/program_options.html;
- 提升属性树为你做的工作:http://www.boost.org/doc/libs/1_44_0/doc/html/boost_propertytree/parsers.html
答
根据你实际有多少复杂的需要,你可能只使用与fgets()在一个循环中,并手动每行解析脱身(例如用strstr(),strchr(),strcmp()等)。如果您只需要获取一些值,那么在拖动解析库时毫无意义。
答
尝试配置。它是易于使用且灵活的C++库,用于配置文件解析(从最简单的INI到具有任意嵌套和语义检查的复杂文件)。仅头和跨平台。使用Boost C++库。
答
如果升压是你矫枉过正,试试这6 KB BSD许可的代码。 (INI Not Invented Here)是一个用C语言编写的简单的.INI文件解析器。它只有几页代码,而且它设计得很小且很简单,所以对嵌入式系统很有用。“
http://code.google.com/p/inih/
还有一个C++类,如果你喜欢的对象,而且它同时支持 “;”和“#”评论。
啊是的,但我的主要原因是如何将它们包含在我的GPL应用程序中。我不知道如何在我的应用程序二进制文件中提供版权。 – Jookia 2010-09-12 17:29:59
@Jookia:也许你可以在这里提出一个关于许可/版权问题的单独问题来解决这个问题? – 2010-09-12 18:06:01