`
sabolasi
  • 浏览: 917630 次
文章分类
社区版块
存档分类
最新评论

VC操作INI文件

 
阅读更多

INI文件简介

在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化。将一些信息写入INI文件(initialization file)中,可完成简单的持久化支持。

Windows提供了API接口用于操作INI文件,其支持的INI文件格式一般如下

===============================

[Section1]

Key11=value11

Key12=value12

[Section2]

Key21=value21

Key22=value22

...

[SectionN]

KeyN1=valueN1

KeyN2=valueN2

===============================

一般一个INI文件可有N每节可有n个键名及值对应每个键名及其值以等式形式占一行。

一般键的名称可任取,不过建议用有意义的字符及词构成。值一般可为整数和字符串,其它类型要进行转换。

常见的系统配置文件:

C:/boot.ini

C:/WINDOWS/win.ini

C:/WINDOWS/system.ini

C:/WINDOWS/desktop.ini

C:/WINDOWS/Resources/Themes/Windows Classic.theme

注意,字符串存贮在INI文件中时没有引号;keyvalue之间的等号前后不容空格;注释以分号“;”开头。

VC中操作INI文件的API

(1)操作系统配置文件Win.ini的函数:

函数名

功能

GetProfileSection

读取win.ini中指定节lpAppName中所有键名及其值。lpReturnedString字符串形式如下:

Key1=Value1/0Key2=Value2/0…KeyN=ValueN/0/0

GetProfileString

读取win.ini中指定节lpAppName中键名为lpKeyName对应变量的字符串值。

GetProfileInt

读取win.ini中指定节lpAppName中键名为lpKeyName对应变量的整数值。

WriteProfileSection

写(替换)win.ini中指定节lpAppName中的键值。

lpString字符串形式同GetProfileSection中的lpReturnedString

WriteProfileString

写(替换)win.ini中指定节lpAppName中键名为lpKeyName对应变量的字符串值。

(2)操作用户自定义配置文件(PrivateProfile.ini)的函数:

函数名

功能

GetPrivateProfileSectionNames

读取lpFileName指定的配置文件中所有的节名。lpszReturnBuffer字符串形式如下:

Section1/0Section2/0…SectionN/0/0

GetPrivateProfileSection

GetProfileSection

GetPrivateProfileString

GetProfileString

GetPrivateProfileInt

GetProfileInt

GetPrivateProfileStruct

须同WritePrivateProfileStruct配套使用。

WritePrivateProfileSection

WriteProfileSection

WritePrivateProfileString

WriteProfileString

WritePrivateProfileStruct

不常用。

注意:

1)使用得频繁的是 GetPrivateProfileString WritePrivateProfileString没有WriteProfileInt/WritePrivateProfileInt函数。

2Get系列读取节键值,如果文件路径有误或节键名不对则返回设定的默认值。

3)访存自定义配置文件时,文件路径lpFileName必须完整,文件名前面的各级目录必须存在。如果lpFileName文件路径不存在,则函数返回FALSEGetLastError() = ERROR_PATH_NOT_FOUND如果路径正确,但是文件不存在,则该函数将先创建该文件。如果路径及文件存在,则在现有ini文件基础上进行读写。

如果 lpFileName 指定文件名而没有路径的话,调用API会去 Windows 的安装目录去查找而不会在当前目录

4)要对调用API的模块(exe)所在目录下进行配置文件操作,可使用形如“.//config.ini”的相对路径,注意转义符。

5)调用WritePrivateProfileSection,若参数三 lpStringNULL,则可将对应section的全部内容清空;调用WritePrivateProfileString,若参数三 lpStringNULL,则可将对应key删除。

跨平台配置文件

INI文件本质是对文件和字符串的处理,因此在跨平台项目中的配置文件可以基于<stdio.h>中的标C文件FILE,然后实现像类似以上对节([Section])、键(Key)和值(Value)的字符串读写功能。

鉴于XML的树形描述层次结构性清晰,现在很多软件都大面积使用XML文件进行配置,如QQ的全局配置文件C:/Program Files/Tencent/QQ/gf-config.xmljava程序的配置文件基本都使用XML格式,C++中并没有操作XML文件的标准库。

C/C++程序中要使用XML做为配置文件,涉及到XML的解析。Windows平台可使用MsXmlXML进行解析,参考《MsXml创建解析XML示例》,跨平台可以考虑自己实现,或使用C++ BOOST正则表达式,或选择Free C or C++ XML Parser Libraries,如XmlParserTinyXMLCMarkuplibxml等。

CIniFile

以下提供对Windows操作INI文件的API的简单封装类CIniFile

参考:

VC++中读写INI

VC INI文件

用VC++操作INI

INI

INI文件查

C++中的XML配置文编程经验

分享到:
评论

相关推荐

    vc操作ini文件

    在本文中,我们将深入探讨如何在VC++中操作INI文件,包括读取、写入和修改INI文件。 1. **读取INI文件** 在VC++中,我们可以使用Windows API函数`GetPrivateProfileString`和`GetPrivateProfileInt`来读取INI文件...

    VC读写ini文件VC读写ini文件

    但了解如何在VC++中操作INI文件仍然对理解Windows编程历史和实现简单配置管理有重要意义。 总的来说,VC++通过Windows API提供的函数能够轻松地读写INI文件,这对于小型应用程序或学习基础的Windows编程非常实用。...

    VC读写ini文件

    1. 在操作INI文件前,确保文件存在,否则可能导致错误。 2. 使用API函数时,注意字符串必须是宽字符类型(`LPTSTR`对应`LPCTSTR`),以兼容Unicode编码。 3. 文件路径应包含正确的文件扩展名`.ini`。 4. 读写操作...

    VC对ini文件的操作.doc

    ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的...

    VC读取Ini文件例子

    本文将深入探讨如何在VC++(Visual C++)环境中读取和操作INI文件,基于提供的"VC读取Ini文件例子"。 首先,让我们理解INI文件的基本结构。INI文件通常包含多个节(Section),每个节下面有多个键值对(Key-Value ...

    VC6.0 INI文件的读取

    在VC6.0(Visual C++ 6.0)环境下,我们可以利用Windows API函数来读取和操作INI文件。本程序示例展示了如何在VC6.0中实现对INI文件的读取。 1. **INI文件结构** INI文件通常包含三个部分:`[Section]`、`Key=...

    VC使用INI文件保存程序的信息

    "VC使用INI文件保存程序的信息"这个主题涉及到如何在Visual C++(VC)环境下利用INI文件来实现数据持久化,方便程序在后续运行时读取和使用这些信息。 INI文件的结构简单易懂,由键值对组成,每个键值对代表一个...

    vc 编写 读写ini文件 程序 源码

    Windows操作系统提供了几个API函数,使得开发者能够方便地操作INI文件: 1. `GetPrivateProfileString`:读取INI文件中的键值。 2. `WritePrivateProfileString`:向INI文件中写入键值。 3. `GetPrivateProfileInt`...

    CIni_demo VC Ini文件操作类 ini文件操作

    CIni类是对Windows API中的GetPrivateProfileString、WritePrivateProfileString等函数的封装,提供了一种面向对象的方式来操作Ini文件。它通常包含以下功能: - 读取和写入键值对:如ReadString、WriteString方法...

    一个封装好的ini文件操作类

    7. **错误处理**:良好的设计还包括错误处理机制,如抛出异常或返回错误代码,以便在无法读取、写入或操作ini文件时提供反馈。 IniFile.cpp和IniFile.h是实现和声明此类的C++源文件。`.cpp`文件通常包含了类的成员...

    VC2010操作ini库

    本文将深入探讨如何在Visual C++ 2010 (VC2010)环境中操作INI文件,包括读取、写入和修改这些文件。我们将使用C++标准库和Windows API函数来实现这一目标。 首先,我们需要了解INI文件的基本结构。一个INI文件通常...

    VC读写ini配置文件代码例程

    在Windows编程中,INI文件是一种常见的配置文件格式,用于存储应用程序的设置和用户偏好。本文将深入探讨如何在VC++环境中使用C语言读写INI配置文件,并通过`GetiniString_App`这个API例程来实现这一功能。 首先,...

    两个INI文件操作实例,VC++源代码

    标题中的“两个INI文件操作实例,VC++源代码”指的是使用C++编程语言,通过Microsoft Visual Studio(VC++)环境,实现对INI配置文件的读取和写入功能的两个具体示例。INI文件是一种常见的配置文件格式,常用于存储...

    VC6 配置文件ini操作

    总的来说,CIniFile类为VC6开发者提供了一个简单且功能强大的接口,用于操作ini配置文件。通过熟练掌握这个类的使用,可以有效地管理应用程序的配置信息,提高代码的可维护性和用户体验。在进行Windows应用程序开发...

    纯C++写的类似于VC对INI文件的读写操作(关于注释的暂时没有处理)

    VC++中的`GetPrivateProfileString`和`WritePrivateProfileString`等函数提供了方便的接口来操作INI文件。然而,如果你希望在不依赖特定库或API的情况下处理INI文件,你可以自行编写C++代码来实现这些功能。 首先,...

    VC 6 读写 ini文件 源码.rar

    在`main`函数中,我们演示了如何使用这两个函数来操作ini文件。 需要注意的是,使用完`readIniFile`返回的字符串后,记得释放分配的内存。此外,为了防止缓冲区溢出,确保`GetPrivateProfileString`的缓冲区大小...

    vc++创建ini文件读写ini文件程序

    注意,虽然上述代码演示了基本的INI文件操作,但实际项目中可能需要处理错误和边界情况,例如文件不存在、内存不足等。此外,对于大型项目,考虑使用更高级的配置文件格式(如XML、JSON或ini库)或使用数据库来存储...

    VC获取ini文件信息

    这就是使用VC处理INI文件的基本流程,通过封装的类,开发者可以避免直接操作复杂且易出错的API,提高代码的可读性和可维护性。在实际开发中,可以根据需求扩展这个`IniFile`类,添加更多的功能,如支持批量操作、...

    VC读写INI配置文件信息

    在Windows编程中,INI文件是一种常见的配置文件格式,用于存储应用程序的设置和参数。INI文件由文本构成,结构简单,易于读写。本教程将详细讲解如何使用VC++(Visual C++)进行INI配置文件的读写操作,以及提供相关...

    VC读取INI文件代码

    **VC读取INI文件代码详解** 在Windows编程中,INI文件是一种常见的配置文件格式,用于存储应用程序的设置和用户偏好。VC++(Visual C++)是Microsoft开发的C++集成开发环境,支持多种Windows API,其中包括对INI...

Global site tag (gtag.js) - Google Analytics