资源描述:
《ini文件读写例程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、RFC11:03:13MFCINI文件读写INI文件是Windows系统中一类比较重要的文件,通常用来存放系统或者应用程序的配置信息,以方便系统或者应用程序在初始化时再次读入。比如Windows系统中的配置文件win.ini和system.ini,它们就主要存放系统启动或用户登陆时的系统信息。这项功能在方便了系统配置的同时,也为非法程序的自动运行提供了可乘之机。显然,这类文件的重要性应该引起我们的重视。但是对于这样的ini文件的读写操作却与普通文本文件有着种种的不同,尤其体现在编程实现上。笔者曾经尝试用手动更改的方法在文件中加入一些项,使得自己的程序能够在初始化时自动运行
2、,但是却没有成功,最后还是藉由编程的方法来实现了。这里主要涉及到一些API函数,而这些函数又往往不被人们所熟知,本文的任务就是在介绍这些函数的同时,用简单的程序作了示例,下面我们言归正传。先来看几个往配置文件中写入信息的函数:(1)WritePrivateProfileSection()用来在ini文件中直接向指定区域写入键和值的信息,其原型如下:BOOLWritePrivateProfileSection(LPCTSTRlpAppName,//指向指定字段的字符串LPCTSTRlpString,//指向要写入的键与值字符串LPCTSTRlpFileName//指向文件名
3、称字符串,如果不包含完整路径,则在windows目录下创建);用法示例:WritePrivateProfileSection(_T(“windows”),_T(“load=c:\winntotepad.exe”),_T(“c:\winnt\win.ini”));(2)WritePrivateProfileString()与上一个函数的不同点在于其将键和值分开了,原型如下:BOOLWritePrivateProfileString(LPCTSTRlpAppName,//指向指定字段的字符串LPCTSTRlpKeyName,//指向指定键的字符串LPCTSTRlp
4、String,//指向指定值的字符串LPCTSTRlpFileName//指向文件名称字符串);用法示例:WritePrivateProfileString(_T(“windows”),_T(load”)_T(“c:\winntotepad.exe”),_T(“c:\winnt\win.ini”));(3)WritePrivateProfileStruct()与前面两个的不同在于文件尾有校验和,原型如下:BOOLWritePrivateProfileStruct(LPCTSTRlpszSection,//指向指定字段的字符串LPCTSTRlpszKey,//指
5、向指定键的字符串LPVOIDlpStruct,//指向存放要加入的数据的缓冲区,如果为NULL,则删除键UINTuSizeStruct,//缓冲区大小,以字节为单位LPCTSTRszFile//以零结尾的文件名称字符串,如果为空,则向win.ini写入);用法示例:WritePrivateProfileStruct(_T(“windows”),_T(“load”),pBuffer,sizeof(pBuffer),_T(“c:\winnt\win.ini”));(4)还有两个函数,是专门用来向win.ini文件写入的,函数原型如下:BOOLWriteProfileSec
6、tion(LPCTSTRlpAppName,//指向指定字段的字符串LPCTSTRlpString//指向指定值的字符串);BOOLWriteProfileString(LPCTSTRlpAppName,//指向指定字段的字符串LPCTSTRlpKeyName,//指向指定键的字符串LPCTSTRlpString//指向指定值的字符串);下面来看几个对应的从ini文件获取信息的API函数,上面已经说得很详细了,这里只说其中两个:DWORDGetPrivateProfileString(LPCTSTRlpAppName,//指向指定字段的字符串LPCTSTRlpKeyNam
7、e,//指向键的字符串LPCTSTRlpDefault,//如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量LPTSTRlpReturnedString,//存放INI文件中值的目的缓存区DWORDnSize,//目的缓冲区的大小,以字节为单位LPCTSTRlpFileName//指向INI文件名称的字符串);UINTGetPrivateProfileInt(LPCTSTRlpAppName,//指向指定字段的字符串LPCTSTRlpKeyName,//指向键的字符串INTnDefault,//如果INI文件