
纯C语言进行ini配置文件的读写。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
纯C语言读取INI配置文件,借助C/C++的第三方开源库,例如iniparser、libini、rwini和UltraLightINIParser等,曾尝试过多种解决方案。然而,这些库往往存在代码量较大、功能相对有限以及接口使用不便等问题。尤其是在处理大小写敏感性、前后空格、各种注释符号、跨平台换行符兼容性、带引号字符串的处理以及无section操作等方面,均存在明显的不足。为了解决这些挑战,现向大家奉献本人精心开发的INI读写程序源码,该程序采用纯C语言编写,设计简洁高效。它同时支持Windows和Linux操作系统。其主要特点包括:首先,能够识别并支持“;”和“#”两种注释符号,并允许在行尾添加注释;其次,能够正确处理带有引号或成对匹配的字符串,在提取时自动去除引号的限制。此外,该程序也支持无section或空section(即section名称为空)的情况;同时具备处理10进制、16进制和8进制数值的能力,并能识别以“0x”开头的16进制数和以“0”开头的8进制数;此外还支持section、key或等号前后存在空格的情况,以及\n、\r、\r\n或\n\r等多种换行格式。更重要的是,该程序在处理数据时不区分section和key的大小写差异,但在写入时则会遵循新的字符串大小写规则并保持一致性;当新增数据时,如果section已存在,则会在该节最后一个有效数据之后添加新的数据;否则,会将新的数据添加到文件的末尾。此外还提供了指定key所在整行删除的功能(即删除键值及其对应的注释);并且能够自动忽略格式错误的行并进行修改时保留原有格式。最后还保留了原有的注释信息:包括整行注释以及行尾注释(包含前导空格),并保留了原有的空行。需要指出的是: 1. 该程序不支持单key对应多value(通过逗号分隔),需要用户自行处理提取后的数据;2. 它不支持同名重复的section和key(重复的section可能被视为错误情况),而重复的key可能会导致歧义;3. 该程序无法提取所有section或key名称。使用该程序仅需包含两个文件inirw.h和inirw.c即可实现读取和写入功能, 另附有测试程序及工程文件, 确保在Windows和Linux环境下都能顺利运行。
全部评论 (0)


