保存应用程序的配置信息
来源:互联网 发布:邪恶网站源码 编辑:程序博客网 时间:2024/05/21 12:47
应用程序启动后,用户会有各种操作。当用户下一次启动应用程序时,就会希望保持上一次的操作状态。或者游戏结束后,需要将最高分记录等等。因此,我们需要在程序关闭的时候,将一些必要的变量保存下来,并且在下一次程序启动的时候,读取这些变量。
通常,可以把这些变量保存在“配置文件”中。配置文件一般以 .ini 为扩展名。例如在 \windows 文件夹里面可以找到很多 .ini 文件。.ini 文件的内容是纯文本的,可以直接双击打开编辑。举一个实际例子,下面是一个标准的 .ini 配置文件的内容:
; 范例[Ball]x=10y=37r=20[Wall]width=70height=60
可以看到,配置文件的格式很简单,包括三种情况:
- 注释:写在半角分号后面;
- 节:用方括号括起来;
- 变量:用“键=值”这种形式记录,整形和字符串不做区分。
要读写这些配置值,可以使用 Windows API 函数,一些常用的相关 API 函数的原型如下:
// 写入字符串的配置值BOOL WritePrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpString, LPCTSTR lpFileName);参数含义:lpAppName: 表示“节”lpKeyName: 表示“键”lpString: 表示“值”lpFileName: 表示配置文件名返回值:执行成功后返回非 0,否则返回 0。具体的错误原因可以通过 GetLastError 函数获取。
// 读入整形的配置值UINT GetPrivateProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault, LPCTSTR lpFileName);参数含义:lpAppName: 表示“节”lpKeyName: 表示“键”nDefault: 表示没有找到指定“键”时,返回的默认“值”lpFileName: 表示配置文件名返回值:获取到指定键的整形值。如果没有获取到,返回 nDefault 指定的默认值。
// 读入字符串的配置值DWORD GetPrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileName);参数含义:lpAppName: 表示“节”lpKeyName: 表示“键”nDefault: 表示没有找到指定“键”时,返回的默认“值”lpReturnedString: 用于保存返回字符串值的缓冲区指针nSize: 缓冲区的大小lpFileName: 表示配置文件名返回值:返回获取到的字符串的长度。
(以上三个函数的更详细介绍,以及更多的关于配置文件的 api,请参考 MSDN)
使用上很简单,举个例子:
// 在当前路径下的 test.ini 配置文件中,创建 [Ball] 节,并记录 x=30WritePrivateProfileString(_T("Ball"), _T("x"), _T("30"), _T(".\\test.ini"));
// 读取前面代码创建的键 x 的值。如果没找到,返回默认值 320int age;age = GetPrivateProfileInt(_T("Ball"), _T("x"), 320, _T(".\\test.ini"));
0 0
- 保存应用程序的配置信息
- Android---利用SharedPreferences来保存应用程序的配置信息
- ios--NSUserDefault保存应用程序配置信息
- 程序配置信息的保存
- MFC中如何将应用程序的配置信息保存到注册表中(一)
- MFC中如何将应用程序的配置信息保存到注册表中(二)
- 应用程序信息 -> “清除默认设置” 信息的保存位置
- NSApplicationSupportDirectory--大部分OS X应用程序注册信息的保存地
- cocos2dx配置信息保存
- JNI配置信息保存
- QSettings 保存配置信息
- 应用程序保存数据库连接配置可能出现的一个安全隐患
- C# 如何使用配置文件保存应用程序里的配置数据
- C# 如何使用配置文件保存应用程序里的配置数据
- cc2640 - snv保存配置信息
- 程序配置信息的保存(Borland C++ Builder环境)
- 使用MSXML来保存配置信息的CPP类
- 使用XML保存程序需要的配置信息
- 提供给开发者 10 款最好的 Python IDE
- 帧中继的本地管理接口类型(LMI)
- 桶排序及C语言实现
- 第十四周项目——oj平台一——求矩阵对角线元素之和
- XMPP客户端库Smack 4.0.6版开发之四
- 保存应用程序的配置信息
- 阿里云RDS文档概述——数据库管理
- 黑马程序员---OC类的本质
- 小米会倒在三个专利火枪手面前吗?
- JVM内存管理-对象访问
- 第十四周项目 oj平台二——国家排序
- XMPP客户端库Smack 4.0.6版开发之五
- 第六届蓝桥杯校内选拔赛C/C++高职组解题(2)
- JDK1.6对脚本语言的支持(Mozilla Rhino)