首页 理论教育如何在VC++MFC中读写.ini配置文件

如何在VC++MFC中读写.ini配置文件

【摘要】:配置文件一般扩展名是“.ini”,是一种用于简易存储数据的文本文件。而配置文件是文本格式,所以可以随时在记事本中编辑和修改。开发人员可以在记事本中很方便地编写配置信息,再次启动进程时,修改后的配置就会被GetProfileInit或者GetProfileString函数加载到程序中。图4-36 配置文件的位置图4-37 编辑配置文件6)CWinApp类封装的API函数包括GetPrivateProfileInt、GetPrivateProfileString、WritePrivate ProfileInt和WritePrivateProfileString等。再次关闭对话框时,新的对话框位置没有保存进INI文件中。图4-38 打开注册表编辑器图4-39 注册表中的配置数据

配置文件一般扩展名是“.ini”,是一种用于简易存储数据的文本文件。普通软件一般采用二进制文件来存储数据,那样不利于文件的编辑和修改。而配置文件(.ini)是文本格式,所以可以随时在记事本中编辑和修改。

打开前面建立的“Tp”工程,继续演示配置文件的用途和读/写方法。

1)为主对话框类添加一个WM_DESTROY的消息映射函数,如图4-35所示。

978-7-111-46378-8-Chapter04-69.jpg

图4-35 添加WM_DESTROY消息映射函数

2)修改该消息映射函数的代码。

978-7-111-46378-8-Chapter04-70.jpg

3)再修改主对话框的初始化函数OnInitDialog。

978-7-111-46378-8-Chapter04-71.jpg

4)编译并运行,测试代码。

把主窗口拖放到一个位置上之后再退出程序,关闭对话框时的位置已经被记录在配置文件中了,重新再启动对话框程序后的位置和关闭时是相同的。那么配置文件在哪里?默认是保存在Windows目录下和可执行文件名相同的INI文件中,如图4-36所示。

5)打开配置文件之后,可以根据需要修改其中的配置,如图4-37所示。可以把中括号内的文字比做是C++的一个类名,每个等号左边的文字就是一个类内的成员变量,配置文件就是如此分类保存不同类别数据信息的。开发人员可以在记事本中很方便地编写配置信息,再次启动进程时,修改后的配置就会被GetProfileInit或者GetProfileString函数加载到程序中。

978-7-111-46378-8-Chapter04-72.jpg

图4-36 配置文件的位置

978-7-111-46378-8-Chapter04-73.jpg

图4-37 编辑配置文件(www.chuimin.cn)

6)CWinApp类封装的API函数包括GetPrivateProfileInt、GetPrivateProfileString、WritePrivate ProfileInt和WritePrivateProfileString等。

theApp.GetProfileInt("PLACE","LEFT",0);

//等价于GetPrivateProfileInt("PLACE","LEFT",0,theApp.m_pszProfileName);

pApp->WriteProfileString("Face","Title",str);

//等价于WritePrivateProfileString("Face","Title",str,theApp.m_pszProfileName);

7)在InitInstance函数中添加一行代码,即可使配置数据保存到注册表中,而不再保存在INI文件中。

978-7-111-46378-8-Chapter04-74.jpg

8)编译并运行,测试代码。再次关闭对话框时,新的对话框位置没有保存进INI文件中。

执行“开始”→“运行”命令,打开“运行”对话框,在“打开”文本框中输入“regedit”后单击“确定”按钮,打开注册表编辑器,如图4-38所示。

9)配置数据已经保存在注册表中了,如图4-39所示。

978-7-111-46378-8-Chapter04-75.jpg

图4-38 打开注册表编辑器

978-7-111-46378-8-Chapter04-76.jpg

图4-39 注册表中的配置数据