资源描述:
《ini文件读写模块设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《串口读写模块设计》2021-8-9ini文件读写模块设计1.引言1.1模块概述模块通过Linux的基本I/O函数实现,实现读写ini文件功能。Ini文件格式参考附录二ini文件格式。由于ini文件的特殊格式,模块内部每次在读写ini文件键值时需从文件头查找对应节和对应键,再进行读写操作,在写改写ini文件时需首先建立临时文件,将原ini文件中改写数据之前的数据添加到临时文件,再将需要改写的数据追加到临时文件,然后把原ini文件改写数据之后的数据添加到临时文件尾最后删除原ini文件,将临时文件名改为正式ini文件名完成一次ini文件改写操作。每次调用调用操作临时文件时,需要重新打
2、开临时文件(模块内部不保存打开的临时文件指针)。应用程序调用该模块进行读写操作流程如下:创建文件(Ini_Create)读/写文件操作(Ini_ReadString/Ini_WriteString/Ini_ReadIni……)关闭文件(Ini_Close)1.2词汇表词汇名称词汇含义备注节(section)Ini文件中中括号的数据键(KEY)节中等号左边的数据值(value)节中等号右边的数据1.3约定文件名:inifiles.c,inifiles.h模块中其他模块的接口函数前缀:ini_,须在模块头文件中声明,其他为文件内部使用函数在声明时加static前缀。1.4与其他模块关
3、系无石家庄泛安科技开发有限公司第9页共9页《串口读写模块设计》2021-8-91.1函数列表l接口函数INT32Ini_Create(INT8sFileName[]);//创建ini文件//读取字符键值INT32Ini_ReadString(INT8sSectionName[],INT8sKeyName[],INT8sValue[],INT32lReadLen,INT8sDefaultVal[])//读取整形键值INT32Ini_ReadInt(INT8sSectionName[],INT8sKeyName[],INT32lDefaultVal);//写键值(字符类型)INT32
4、Ini_WriteString(INT8sSectionName[],INT8sKeyName[],INT8sValue[])//写键值(整型)INT32Ini_WriteIni(INT8sSectionName[],INT8sKeyName[],INT32lValue)//删除键INT32Ini_DeleteField(INT8sSectionName[],INT8sKeyName[])//删除节INT32Ini_DeleteSection(INT8sSectionName[])//关闭ini文件voidIni_Close()l局部函数//取得键行数据INT32GetKeyLi
5、ne(INT8sSection[],INT8sKey[],INT8sData[],);//取得键行号INT32GetKeyLineNo(INT8sSection[],INT8sKey[]);//取得键值INT32GetKeyValue(INT8sLineBuffer[],INT8sData[]);//追加临时文件INT32AppendTmpFile(INT8sBuffer[]);//读取并追加临时文件INT32ReadAndAppendTmpFile(FILE*fd,INT32lStartLine,INT32lEndLine);石家庄泛安科技开发有限公司第9页共9页《串口读写模块
6、设计》2021-8-91.1模块内部函数调用关系l读取字符串Ini_ReadString从section中查找对应键(GetKeyLine)取得行中=号右边的值(GetFieldLineNo)读取字段值(GetFieldValue)l读取整形值Ini_ReadInt调用关系同Ini_ReadString,取得数据后将数据转换为整形。l写字段数据Ini_WriteString在临时文件添加新数据(AppendTmpFile)在临时文件添加新数据(AppendTmpFile)取得字段行号(GetFieldLineNo)读取键前行数据添加到临时文件(ReadAndAppendTmpFi
7、le)读取键前行数据添加到临时文件(ReadAndAppendTmpFile)删除ini文件并将临时文件改名l删除节中对应字段Ini_DeleteField暂不实现。l删除节Ini_DeleteSection暂不实现1.数据结构说明2.1结构定义无2.2宏定义#defineLINEBUFFERLEN255;//读取行缓冲区石家庄泛安科技开发有限公司第9页共9页《串口读写模块设计》2021-8-9#defineTEMPFILENAME“tmp.ini”//临时文件名2.1局部变量F