• 大小: 7KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-07
  • 语言: C/C++
  • 标签: c  读写  ini  

资源简介

纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小写处理、前后空格、各种注释、跨平台换行符支持、带引号字符串处理、无section操作、原格式保持等方面存在问题。 现将本人精心制作的ini读写程序源码奉献给大家,纯c编写,简洁好用。支持windows和linux。 主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

#define SIZE_LINE 1024 //每行最大长度
#define SIZE_FILENAME 256 //文件名最大长度

#define min(x y) (x <= y) ? x : y

typedef enum _ELineType_ {
    LINE_IDLE //未处理行
LINE_ERROR //错误行
LINE_EMPTY //空白行或注释行
LINE_SECTION //节定义行
LINE_VALUE //值定义行
} ELineType ;


static char gFilename[SIZE_FILENAME];
static char *gBuffer;
static int gBuflen;


//去除串首尾空格,原串被改写
static char *StrStrip(char *s)
{
size_t size;
char *p1 *p2;

size = strlen(s);
if (!size)
return s;

p2 = s + size - 1;

while ((p2 >= s) && isspace(*p2))
p2 --;
*(p2 + 1) = ‘\0‘;

p1 = s;
while (*p1 && isspace(*p1))
p1 ++;
if (s != p1)
memmove(s p1 p2 - p1 + 2);
return s;
}


//不区分大小写比较字符串
stat

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        623  2010-10-10 10:10  inirw\config.ini

     文件      10250  2010-10-10 10:10  inirw\inirw.c

     文件       1582  2010-10-10 10:10  inirw\inirw.h

     文件        403  2010-10-10 10:10  inirw\makefile

     文件       1165  2010-10-10 10:10  inirw\test.cpp

     文件        872  2010-10-10 10:10  inirw\test.sln

     文件       4080  2010-10-10 10:10  inirw\test.vcproj

     目录          0  2010-10-10 10:10  inirw

----------- ---------  ---------- -----  ----

                18975                    8


评论

共有 条评论