ReadIniFile读取ini配置文件

下面这个是自己写的一个读配置文件ini格式的一个函数。

第一个参数path是配置文件的路径

第二个参数是要读的键

第三个参数是返回的键值



#define OPEN_FILE_FAILED        (-1)

#define READ_SUCCESS               (1)

#define NOT_FOUND                     (0)

int ReadIniFile(char * path, char * key, char * value)

{
    FILE * fp = NULL;
    char ReadBuffer[512] = {0x00};
    char *p = ReadBuffer;
    char *q = ReadBuffer;
    fopen_s(&fp, path, "rb");
    if(NULL == fp)
    {
        return OPEN_FILE_FAILED;
    }
    while(!feof(fp))
    {
        fread(p,1,1,fp);
        if(*p++ == '\n')
        {
            if(('#' == ReadBuffer[0]) || (0 == memcmp("//",ReadBuffer,2)))
            {
                memset(ReadBuffer, 0, sizeof(ReadBuffer));
                p = ReadBuffer;
                continue;
            }
            p = ReadBuffer;
            while(*p++ != '\0')
            {
                if('=' == *p)
                {
                    *p = '\0';
                    p++;
                    break;
                }
            }
            if(0 == memcmp(key,q,strlen(key)))
            {
                memcpy(value,p,strlen(p));
                memset(ReadBuffer, 0, sizeof(ReadBuffer));
                p = ReadBuffer;
                q = ReadBuffer;
                return READ_SUCCESS;
            }
            memset(ReadBuffer, 0, sizeof(ReadBuffer));
            p = ReadBuffer;
            q = ReadBuffer;

        }

    }

    return  NOT_FOUND;

}

猜你喜欢

转载自blog.csdn.net/wangmeng0804/article/details/53020683