用C++Bulider在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 nDefault); 其中lpAppName指在WIN.INI中段的名字，即用[]括起来的字符串，lpKeyName指在这个段中每一个项目的名字，lpString指这个项目的值，即“=”后的数, nDefault为当GetProfileInt没有找到lpAppName和lpKeyName时返回的值，即缺省值,前者返回为布尔值(true 或 false)，后者返回为无符号整形值。当在WriteProfileString函数中 lpKeyName 为空(NULL)时，则清除这个段的全部内容，lpString 为空时，则清除这一项目的内容，即这一行将清除掉。 下面举一例子来说明这两个函数的用法。新建一个应用程序，在Form1上放两个Edit和三个Button，其中Edit的Text为空，三个Button的Caption分别为“添加”、“查看”、“清除”。双击“添加”按钮加入下面代码： WriteProfileString(“例子程序”，“项目”，Edit1→Text.c_str()); 双击“查看”按钮加入如下代码： unsigned int Temp; Temp=GetProfileInt(“例子程序”，“项目”，100); Edit2→Text=IntToStr(Temp); 双击“清除”按钮加入如下代码： WriteProfileString(“例子程序”，NULL，NULL)； 然后按F9键运行程序。 下来可以检验一下程序的正确性。在Edit1中输入数字，如“3265”，按“添加”按钮，这时运行“sysedit”来查看“WIN.INI”文件的最后面，可以看到加入了如下内容： [例子程序] 项目=3265 其中“[]”和“=”是函数自动加上的。按下“查看”按钮，在Edit2中出现“3265”，当按下“清除”按钮可清除添加的部分。经过查看可知程序已达到预期的目的。 喜爱编程的朋友可以把上述方法应用到自己的程序中去，来达到保存数据信息的作用。当确实要把信息保存到注册表中，可以在C＋＋ Builder中定义一个TRegistry类的对象来进行相关的操作，或者直接调用Windows的API函数，具体如何编程大家可以参阅相关资料或者同我联系，我的E－mail: xiansn@263.net。以上程序在C＋＋ Builder 1.0和3.0下调试通过。