精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究
字符串是最重要最常用的数据类型,而文本文件是最常用的文件格式,INI文件是文本文件中的小摩托,有些小零件,能用信息装配出来一些软件的基础。下面就介绍零件概念。
我们知道我们的项目中的程序往往是做一些逻辑处理,但如果我们现在有一个需求就是说要在程序中存储一些固定的信息,我们该怎么办,这时候我们可能会想到我们在程序中用来存储数据信息的变量,但我们立马能够想到不管是我们的变量还是我们写的类,都是为了逻辑处理而存在的,都有自己的声明周期,在程序的执行过程中它们一直是一个创建和销毁的过程。那么如何在我们工程中持久化信息呢,这事小编我最先想到的就是用我们的txt文件来存储,然后用我们的程序对文件进行读取、写入操作。
于此同时官方也想到了这些,官方给我们提供了以ini为后缀的配置文件,并且还给我们提供了对该配置文件的读写函数,这样可以极大的简化我们的持久化需求。
Ini文件可以存储我们的配置信息,作用相当于我们的数据库,我们知道我们的数据库就是可以来存储一些我们的持久化信息,但是如果我们的项目并不需要过多的数据存储操作,我们的ini文件可以说是完全够用了。
官方提供了WritePrivateProfileString()和GetPrivateProfileString()两个函数来对我们的配置文件进行写入与读取操作,WritePrivateProfileString()函数原型如下
BOOL WritePrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);
按照常识我们应该能够猜到,持久化操作至少要有键值对,就是我们上面的lpKeyName和lpString,而我们要确定插入哪个文件,因此又有了我们的参数lpFileName,而对于我们这样一个持久化文件,如果全部都是键值对,势必会导致我们的查询速度变慢,因此我们还要输入一个字段名lpAppName,相当与表的作用,将我们的键值对划分为一张张表,表在ini里称呼为节,ini文件就是由节和项来组成,很直观,也很简单,但很常用,所以是初学者学MFC的一个好方向。
GetPrivateProfileString()字段原型如下
DWORD GetPrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
学习了写入函数,我们不难猜到,读取的时候,字段名(lpAppName)、键名(lpKeyName)、文件名(lpFileName)这三个是必不可少的,这三个字段唯一确定我们的信息,然后就是接受信息的字段(lpReturnedString),而如果根据我们的字段和键没有读到值的话我们的(lpReturnedString)接收的就是我们lpDefault字段里的信息,代表该字段中该键名的默认信息,原型还多出一个字段(nSize)来记录我们这个值的大小。
但说到这里我们好像只进行了ini文件的写入和读取操作,我们如何对数据进行删除呢,删除没有对应的函数吗?难道是官方的疏忽,其实不是的,我们想要删除某个字段或者是键,只需要在写入数据的时候,将对应的字段或者是键对应的参数置为null的最用就相当与删除了指定的字段和键。