用C++在WIN.INI中保存信息
现在很多软件都是把程序中需要的数据保存在注册表中,这样当用户安装的软件越来越多的时候,注册表就变得越来越大,很容易出现系统错误。当然,微软也建议将数据保存在注册表中,但是当我们没有太多数据需要保存时,可以保存在WIN中。INI,易于维护,实现方法相对简单。下面我以Borland C++ Builder为例来谈谈如何实现。
其实原理很简单,调用API的WriteProfileString和GetProfileInt函数即可。这两个函数的原型分别是:Bool WriteProfileString(lpctstr lpappname,lpctstr lpkeyname,lpctstr lpstring);
UINT GetProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT NDE default);
其中lpAppName是指WIN中间部分的名称。INI,也就是[]括起来的字符串,lpKeyName是指本节中每一项的名称,lpString是指该项的值,即“=”后的数字,nDefault是GetProfileInt找不到lpAppName和lpKeyName时返回的值,这两个值都是默认值。前者返回一个布尔值(真或假),后者返回一个无符号整数值。当WriteProfileString函数中lpKeyName为空(NULL)时,该段的内容全部清零;当lpString为空时,该项内容被清除,即这一行将被清除。
这里有一个例子来说明这两个函数的用法。创建一个新的应用程序,在Form1上放置两个编辑和三个按钮,其中编辑的文本是空,三个按钮的标题分别是“添加”、“查看”和“清除”。双击“添加”按钮添加以下代码:
WriteProfileString("示例程序","项目",edit 1→text . c _ str());
双击“查看”按钮添加以下代码:
无符号int Temp
Temp=GetProfileInt("示例程序","项目",100);
edit 2→Text = IntToStr(Temp);
双击“清除”按钮添加以下代码:
WriteProfileString("示例程序",NULL,NULL);
然后按F9运行程序。
下来检查程序的正确性。在Edit1中输入一个数字,如“3265”,然后按“添加”按钮。这时,运行“sysedit”来查看后面的“WIN。INI”文件。可以看到增加了以下内容:
[示例程序]
Item =3265
其中“[]”和“=”由函数自动添加。按下“查看”按钮,“3265”出现在编辑2中。当按下“清除”按钮时,可以清除添加的部分。经过检查,可以看出该程序达到了预期的目的。
喜欢编程的朋友可以将以上方法应用到自己的程序中,实现保存数据信息的功能。当你确实想保存注册表中的信息时,可以在C++Builder中定义一个TRegistry类对象来执行相关操作,或者直接调用Windows的API函数。
位律师回复
0条评论