資源簡(jiǎn)介
純c讀寫ini配置文件
用c/c++讀寫ini配置文件有不少第三方的開源庫(kù),如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代碼較大、功能較弱、
接口使用不方便。尤其在大小寫處理、前后空格、各種注釋、跨平臺(tái)換行符支持、帶引號(hào)字符串處理、無(wú)section操作、原格式保持等方面存在問題。
現(xiàn)將本人精心制作的ini讀寫程序源碼奉獻(xiàn)給大家,純c編寫,簡(jiǎn)潔好用。支持windows和linux。
主要特點(diǎn):
1、支持;和#注釋符號(hào),支持行尾注釋。
2、支持帶引號(hào)'或"成對(duì)匹配的字符串,提取時(shí)自動(dòng)去引號(hào)。引號(hào)中可帶其它引號(hào)或;#注釋符。
代碼片段和文件信息
#include?
#include?
#include?
#include?
#define?SIZE_LINE 1024 //每行最大長(zhǎng)度
#define?SIZE_FILENAME 256 //文件名最大長(zhǎng)度
#define?min(x?y) (x?<=?y)???x?:?y
typedef?enum?_ELineType_?{
????LINE_IDLE //未處理行
LINE_ERROR //錯(cuò)誤行
LINE_EMPTY //空白行或注釋行
LINE_SECTION //節(jié)定義行
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;
}
//不區(qū)分大小寫比較字符串
stat
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????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
評(píng)論
共有 條評(píng)論