ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:18.37KB ,
资源ID:12087190      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12087190.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ini文件读写解决方案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ini文件读写解决方案.docx

1、ini文件读写解决方案ini文件读写解决方案篇一:ini配置文件的读写 ini配置文件的读写 很多时候,我们的程序运行前需要用户做一些相关的设置,而且我们总是需要把一些配置信息保存下来,那天一直在思考怎么解决这个问题,突然就想到了在一些软件安装目录下的ini文件,然后经过查找资料发现其实ini文件既方便又实用。下面对其使用进行总结: 一、将信息从ini文件中读取到变量中 首先,看一个ini文件的示例。 连接参数 IpServer= DataBase=DB_TEST UserID=test Password=123456 ;注释用英文分号 以上就是一个简单的配置文档。读取信息所用的函数为 DWO

2、RD GetPrivateProfileString( LPCTSTR lpAppName, / section name LPCTSTR lpKeyName, / key name LPCTSTR lpDefault, / default string LPTSTR lpReturnedString, / destination buffer DWORD nSize, / size of destination bufferLPCTSTR lpFileName / initialization file name ); 第一个参数为字段名,上例中的连接参数;第二个参数键名,即变量名,上例中的

3、IpServer、DataBase等等;第三个参数指,如果ini文件中没有前两个参数指定的字段名或键名,则将lpDefault的值赋给变量,也就是缺省值;第四个参数是接收ini文件中键名的值的CString对象,即目的缓存器;第五个参数是目的缓存器的大小;第六个参数是ini文件的完整路径。如下: GetPrivateProfileString(L连接参数,LipServer,L, (MAX_PATH),MAX_PATH,curPath); 在此额外说一点,一般来说ini文件和exe文件是放在一起的,所以这里涉及到当前路径的问题,该问题在如何获取EXE可执行文件的所在路径一文中讲得很清楚,而在此

4、我用另一个全局函数也可以实现,假如我们的文件是配置.ini,则如下: CString curPath;/存储路径的CString对象 AfxGetModuleFileName(AfxGetInstanceHandle(),curPath); curPath=()+; (L配置.ini); 或者还可以使lpFileName的值为:“./配置.ini” 来定位到当前目录(这种方法笔者还未测试)。 此外,读取整型值便要用另一个函数: UINT GetPrivateProfileInt( LPCTSTR lpAppName, / section name LPCTSTR lpKeyName, / ke

5、y name INT nDefault, / return value if key name not foundLPCTSTR lpFileName / initialization file name ); 二、将配置信息保存到ini文件中 类似地,所用函数为: BOOL WritePrivateProfileString( LPCTSTR lpAppName, / section name LPCTSTR lpKeyName, / key name LPCTSTR lpString,/ string to add LPCTSTR lpFileName / initialization f

6、ile ); 参数与读取的时候意义基本一致,而且比读取的时候更简单一点,在此不作赘述。 最后,需要注意的一点是,文件名的路径中反斜杠必须为才表示,第一个为转义字符。 篇二:ini文件读写模块设计 ini文件读写模块设计 1. 引言 模块概述 模块通过Linux的基本I/O函数实现,实现读写ini文件功能。Ini文件格式参考附录二ini文件格式。 由于ini文件的特殊格式,模块内部每次在读写ini文件键值时需从文件头查找对应节和对应键,再进行读写操作,在写改写ini文件时需首先建立临时文件,将原ini文件中改写数据之前的数据添加到临时文件,再将需要改写的数据追加到临时文件,然后把原ini文件改写

7、数据之后的数据添加到临时文件尾最后删除原ini文件,将临时文件名改为正式ini文件名完成一次ini文件改写操作。每次调用调用操作临时文件时,需要重新打开临时文件(模块内部不保存打开的临时文件指针)。 应用程序调用该模块进行读写操作流程如下: 词汇表 约定 文件名:, 模块中其他模块的接口函数前缀:ini_,须在模块头文件中声明,其他为文件内部使用函数在声明时加static前缀。 与其他模块关系 无 第1页 共9页 石家庄泛安科技开发有限公司 函数列表 ? 接口函数 INT32 Ini_Create(INT8 sFileName); /读取字符键值 INT32 Ini_ReadString(IN

8、T8 sSectionName, INT8 sKeyName, INT8 sValue, INT32 lReadLen, INT8 sDefaultVal) /读取整形键值 INT32 Ini_ReadInt(INT8 sSectionName, INT8 sKeyName, INT32 lDefaultVal); /写键值(字符类型) INT32 Ini_WriteString(INT8 sSectionName, INT8 sKeyName, INT8 sValue) /写键值(整型) INT32 Ini_WriteIni(INT8 sSectionName, INT8 sKeyName,

9、 INT32 lValue) /删除键 INT32 Ini_DeleteField(INT8 sSectionName, INT8 sKeyName) /删除节 INT32 Ini_DeleteSection(INT8 sSectionName) /关闭ini文件 void Ini_Close() ? 局部函数 /取得键行数据 INT32 GetKeyLine (INT8 sSection, INT8 sKey, INT8 sData,); /取得键行号 INT32 GetKeyLineNo(INT8 sSection, INT8 sKey); /取得键值 INT32 GetKeyValue(

10、INT8 sLineBuffer, INT8 sData); /追加临时文件 INT32 AppendTmpFile(INT8 sBuffer); /读取并追加临时文件 INT32 ReadAndAppendTmpFile(FILE *fd, INT32 lStartLine, INT32 lEndLine); /创建ini文件 石家庄泛安科技开发有限公司 第2页 共9页 模块内部函数调用关系 ? 读取字符串Ini_ReadString ? 读取整形值Ini_ReadInt 调用关系同Ini_ReadString,取得数据后将数据转换为整形。 ? 写字段数据Ini_WriteString ?

11、删除节中对应字段Ini_DeleteField 暂不实现。 ? 删除节Ini_DeleteSection 暂不实现 2. 数据结构说明 结构定义 无 宏定义 #define LINEBUFFERLEN 255;/读取行缓冲区 第3页 共9页 石家庄泛安科技开发有限公司 #define TEMPFILENAME “” /临时文件名 局部变量 FILE *fd; /文件指针 3. 接口函数 创建文件 读取字符值 调用流程如下: 读取整形数据 石家庄泛安科技开发有限公司 第4页 共9页 写字符数据调用流程如下: 写整形数据 删除字段 第5页 共9页 石家庄泛安科技开发有限公司篇三:读写INI文件的函

12、数介绍 读写INI文件函数的介绍 INI文件就是扩展名为“ini”的文件。在Windows系统中,INI文件是很多,最重要的就是“”、“”和“”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置。但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息放进了注册表中。但在某些场合,INI文件还拥有其不可替代的地位。本文就来探讨一下C是如何对INI进行读写操作。 INI文件的结构 INI文件是一种按照特

13、点方式排列的文本文件。每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下: Section1 KeyWord1 = Valuel KeyWord2 = Value2 ? Section2 KeyWord3 = Value3 KeyWord4 = Value4 C和Win32 API函数 C并不像C,拥有属于自己的类库。C使用的类库是.Net框架为所有.Net程序开发提供的一个共有的类库.Net FrameWork SDK。虽然.Net F

14、rameWork SDK内容十分庞大,功能也非常强大,但还不能面面俱到,至少它并没有提供直接操作INI文件所需要的相关的类。在本文中,C操作INI文件使用的是Windows系统自带Win32的API函数WritePrivateProfileString()和GetPrivateProfileString()函数。这二个函数都位于“”文件中。 我们知道在C中使用的类库都是托管代码((来自: 小 龙 文档网:ini文件读写解决方案)Managed Code)文件,而Win32的API函数所处的文件,都是非托管代码(Unmanaged Code)文件。这就导致了在C中不可能直接使用这些非托管代码文件

15、中的函数。好在.Net框架为了保持对下的兼容,也为了充分利用以前的资源,提出了互操作,通过互操作可以实现对Win32的API函数的调用。互操作不仅适用于Win32的API函数,还可以用来访问托管的COM对象。C中对Win32的API函数的互操作是通过命名空间“”中的“DllImport”特征类来实现的。它的主要作用是指示此属性化方法是作为非托管DLL的输出实现的。下面代码就是在C利用命名空间“”中的“DllImport”特征类申明上面二个Win32的API函数: C申明INI文件的写操作函数WritePrivateProfileString(): DllImport ( kernel32 )

16、private static extern long WritePrivateProfileString ( string section , string key , string val , string filePath ) ; 参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件中关键字的数值;filePath:INI文件的完整的路径和名称。 C申明INI文件的读操作函数GetPrivateProfileString(): DllImport ( kernel32 ) private static extern int GetPrivatePr

17、ofileString ( string section ,string key , string def , StringBuilder retVal , int size , string filePath ) ; 参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。 C中读写INI文件的关键步骤和解决方法 C对INI文件进行写操作: /写入INI文件 private void button2_Click ( object sender

18、 , e ) string FileName = ; string section = ; string key = ; string keyValue = ; WritePrivateProfileString ( section , key , keyValue , FileName ) ; ( 成功写入INI文件! , 信息 ) ; 对INI文件进行写操作,是通过组件button2的Click事件来实现的。这里有一点应该注意,当在调用WritePrivateProfileString()对INI文件进行写操作的时候,如果此时在INI文件中存在和要写入的信息相同的段落名称和关键字,则将覆盖此INI信息。下面是button2组件的Click事件对应的代码清单: C对INI文件进行读操作: 正确读取INI的必须满足三个前提:INI文件的全路径、段落名称和关键字名称。否则就无法正确读取。你可以设定读取不成功后的缺省数值,在下面的程序中,为了直观设定的是“无法读取对应数值!”字符串,读取INI文件是通过button3组件的“Click”事件来实现的,下面是其对应的代码清单:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1