CFG、INI配置文件读写C程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CFG、INI配置文件读写C程序
/******************************************************************** * 文件名称: INIFileOP.C
* 文件标识:
* 其它说明: INI文件的操作
* 当前版本: V1.0
* 完成日期:
********************************************************************* */
#include
#include
#include
/*#undef VOS_WINNT*/
#define VOS_WINNT
#ifdef VOS_WINNT
#define INIFileTstmain main
#endif
#define SuccessRet 1;
#define FailedRet 0;
#define
MAX_CFG_BUF
512
#define
CFG_OK
#define CFG_SECTION_NOT_FOUND-1
#define CFG_KEY_NOT_FOUND -2
#define CFG_ERR -10
#define CFG_ERR_FILE -10
#define CFG_ERR_OPEN_FILE -10
#define CFG_ERR_CREATE_FILE -11
#define CFG_ERR_READ_FILE -12
#define CFG_ERR_WRITE_FILE -13
#define CFG_ERR_FILE_FORMAT -14
#define CFG_ERR_SYSTEM -20
#define CFG_ERR_SYSTEM_CALL -20
#define CFG_ERR_INTERNAL -21
#define CFG_ERR_EXCEED_BUF_SIZE -22
#define COPYF_OK 0
#define COPYF_ERR_OPEN_FILE -10
#define COPYF_ERR_CREATE_FILE -11
#define COPYF_ERR_READ_FILE -12
#define COPYF_ERR_WRITE_FILE -13
#define TXTF_OK 0
#define TXTF_ERR_OPEN_FILE -1
#define TXTF_ERR_READ_FILE -2
#define TXTF_ERR_WRITE_FILE -3
#define TXTF_ERR_DELETE_FILE -4
#define TXTF_ERR_NOT_FOUND -5
char CFG_ssl = '[', CFG_ssr = ']';
/* 项标志符Section Symbol --可根据特殊需要进行定义更改,如 { }等*/ char CFG_nis = ':'; /*name 与 index 之间的分隔符 */
char CFG_nts = '#'; /*注释符*/
int CFG_section_line_no, CFG_key_line_no, CFG_key_lines;
static char * strtrimr(char * buf);
static char * strtriml(char * buf);
static int FileGetLine(FILE *fp, char *buffer, intmaxlen);
static int SplitKeyValue(char *buf, char **key, char **val);
extern int FileCopy(void *source_file, void *dest_file);
extern int SplitSectionToNameIndex(char *section, char **name, char **index);
extern int JoinNameIndexToSection(char **section, char *name, char *index);
extern int ConfigGetKey(void *CFG_file, void *section, void *key, void *buf);
extern int ConfigSetKey(void *CFG_file, void *section, void *key, void *buf);
extern int ConfigGetSections(void *CFG_file, char *sections[]); extern int ConfigGetKeys(void *CFG_file, void *section, char *keys[]);
extern void INIFileTstmain(void);
/******************************************************************** **
* 函数名称: strtrimr
* 功能描述:去除字符串右边的空字符
* 访问的表:无
* 修改的表:无
* 输入参数: char * buf 字符串指针
* 输出参数:无
* 返回值:字符串指针
* 其它说明:无
********************************************************************/ char * strtrimr(char * buf)
{
intlen,i;
char * tmp = NULL;
len = strlen(buf);
tmp = (char*)malloc(len);
memset(tmp,0x00,len);
for(i = 0;i { if (buf[i] !=' ') break; } if (i strncpy(tmp,(buf+i),(len-i)); } strncpy(buf,tmp,len); free(tmp); return buf; } /******************************************************************** ** * 函数名称: strtriml