299 lines
9.4 KiB
C
299 lines
9.4 KiB
C
|
|
/**
|
|||
|
|
* @file: $RCSfile: initools.h,v $
|
|||
|
|
* @brief: $parsing ini files
|
|||
|
|
*
|
|||
|
|
* @version: $Revision: 1.1 $
|
|||
|
|
* @date: $Date: 2018/11/24 06:54:49 $
|
|||
|
|
* @author: $Author: lizhongming $
|
|||
|
|
* @state: $State: Exp $
|
|||
|
|
*
|
|||
|
|
* @latest: $Id: initools.h,v 1.1 2018/11/24 06:54:49 lizhongming Exp $
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/****
|
|||
|
|
Examples 1:
|
|||
|
|
|
|||
|
|
inifile_t *Hp;
|
|||
|
|
char values[15];
|
|||
|
|
ini_section_t *sec;
|
|||
|
|
|
|||
|
|
ini_Parser_Create("c:\\1.ini",&Hp);
|
|||
|
|
printf("---MAPI=%d--\n",ini_GetKeyIntValueWithDefault(Hp,"Mail","MAPI",999));
|
|||
|
|
printf("---CMCDLLNAME32=%d--\n",ini_GetKeyIntValueWithDefault(Hp,"Mail","CMCDLLNAME32",999));
|
|||
|
|
ini_GetKeyValue(Hp,"Mail","CMCDLLNAME32",values,15);
|
|||
|
|
printf("---CMCDLLNAME32=%s--\n",values);
|
|||
|
|
sec=ini_GetSection(Hp,"Mail");
|
|||
|
|
printf("---MAPIX=%d--\n",ini_GetKeyIntValueByHandleWithDefault(sec,"MAPIX",999));
|
|||
|
|
sec=ini_GetSection(Hp,"MCI Extensions.BAK");
|
|||
|
|
ini_GetKeyValueByHandle(sec,"wm",values,15);
|
|||
|
|
printf("---MAPIX=%s--\n",values);
|
|||
|
|
ini_Parser_Destory(Hp);
|
|||
|
|
|
|||
|
|
Example 2: <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>INI<EFBFBD>ļ<EFBFBD>
|
|||
|
|
int ini_test()
|
|||
|
|
{
|
|||
|
|
inifile_t *Parser;
|
|||
|
|
apr_status_t rv;
|
|||
|
|
char contents[10240];
|
|||
|
|
strcpy(contents,"");
|
|||
|
|
|
|||
|
|
rv = ini_Parser_Create_By_Memory_file(contents,sizeof(contents),&Parser);
|
|||
|
|
if (rv) return rv;
|
|||
|
|
|
|||
|
|
rv = ini_AppendSectionM(Parser,"SectionA");
|
|||
|
|
if (rv) return rv;
|
|||
|
|
|
|||
|
|
rv = ini_AppendKeyM(Parser,"SectionA","Item1","1");
|
|||
|
|
if (rv) return rv;
|
|||
|
|
rv = ini_AppendKeyM(Parser,"SectionA","Item2","2");
|
|||
|
|
if (rv) return rv;
|
|||
|
|
rv = ini_AppendKeyM(Parser,"SectionA","Item3","3");
|
|||
|
|
if (rv) return rv;
|
|||
|
|
|
|||
|
|
rv = ini_Dump(Parser);
|
|||
|
|
printf ("%s",contents);
|
|||
|
|
return rv;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
****/
|
|||
|
|
#ifndef INITOOLS_H_HBJYUGGVYUGYGU
|
|||
|
|
#define INITOOLS_H_HBJYUGGVYUGYGU
|
|||
|
|
|
|||
|
|
#include "apr.h"
|
|||
|
|
#include "apr_errno.h"
|
|||
|
|
#include "apr_pools.h"
|
|||
|
|
|
|||
|
|
#define INI_MAX_CHARS_A_LINE (1024)
|
|||
|
|
typedef struct inifile_t inifile_t;
|
|||
|
|
typedef struct ini_section_t ini_section_t;
|
|||
|
|
typedef struct ini_item_t ini_item_t;
|
|||
|
|
typedef enum token_name token_name;
|
|||
|
|
typedef enum parse_token parse_token;
|
|||
|
|
typedef enum char_event char_event;
|
|||
|
|
|
|||
|
|
#define INI_COMMON_FILE (0) /**< INI<4E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> */
|
|||
|
|
#define INI_MEMORY_FILE (1) /**< INI<4E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> */
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ļ<EFBFBD>
|
|||
|
|
typedef int(* CALLBACK_CONTENT_FILTER) (const char* content,int line_no,void *user_data);
|
|||
|
|
typedef int(* CALLBACK_CONTENT_OPERATION)(const char* org_content,char *changed_content,size_t buffer_len,void * user_data);
|
|||
|
|
|
|||
|
|
#ifdef __cplusplus
|
|||
|
|
extern "C" {
|
|||
|
|
#endif /* __cplusplus */
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>հ<EFBFBD>INI<4E>ļ<EFBFBD>
|
|||
|
|
APR_DECLARE(apr_status_t) ini_Create_BlankFile (const char *path,const char *filename);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief INI<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param filename Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param parse_handle<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_Parser_Create (const char *filename,inifile_t **parse_handle);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief INI<EFBFBD>ڴ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param str_buffer Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|||
|
|
* @param parse_handle<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_Parser_Create_By_Memory_file (char * str_buffer ,size_t len , inifile_t **parse_handle);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief INI<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(void) ini_Parser_Destory (inifile_t *parse_handle);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD>ini <EFBFBD>ļ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szBuffer <EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ 'AAA\0BBB\0...\0\0'
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESSszBuffer is not large enough to hold whole sections return APR_ENOMEM .
|
|||
|
|
* @note szBuffer should be large enough
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_GetSectionNames(inifile_t *ini_parse_handle ,char* szBuffer, int nlen);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//
|
|||
|
|
//szBuffer <20><>С 'AAA\0BBB\0...\0\0'
|
|||
|
|
//return APR_ENOMEM .
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD>ini <EFBFBD>ļ<EFBFBD><EFBFBD>е<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>,szBuffer should be large enough
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szBuffer <EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ 'AAA\0BBB\0...\0\0'
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS, return APR_ENOMEM if szBuffer is not large enough to hold whole item lists
|
|||
|
|
* @note szBuffer should be large enough
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_GetItemNames(ini_section_t *sec,char* szBuffer, int nlen);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD>NULL
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(ini_section_t*) ini_GetSection (const inifile_t *ini_parse_handle , const char* Section);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,Ч<EFBFBD>ʽϸ߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param sec <EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param nDefault <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ȱʡֵ
|
|||
|
|
* @return <EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(int) ini_GetKeyIntValueByHandleWithDefault(ini_section_t *sec ,const char* Key,int nDefault);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,Ч<EFBFBD>ʽϸ߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param sec <EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Value <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_GetKeyIntValueByHandle(ini_section_t *sec ,const char* Key, int *Value);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ֵ,Ч<EFBFBD>ʽϸ߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param sec <EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szValue <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param nlen <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
|
* @return <EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_GetKeyValueByHandle(ini_section_t *sec ,const char* Key,
|
|||
|
|
char* szValue, int nlen);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ֵ,Ч<EFBFBD>ʽϸ߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param nDefault <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ȱʡֵ
|
|||
|
|
* @return <EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(int) ini_GetKeyIntValueWithDefault(inifile_t *ini_parse_handle ,const char* Section,
|
|||
|
|
const char* Key,int nDefault);
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szValue <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param nlen <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_GetKeyIntValue(inifile_t *ini_parse_handle ,const char* Section,
|
|||
|
|
const char* Key,int *value);
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szValue <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param nlen <EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_GetKeyValue(inifile_t *ini_parse_handle ,
|
|||
|
|
const char* Section,const char* Key,
|
|||
|
|
char* szValue, int nlen);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD>趨ָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD>ijһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szValue <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>INI<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>֮ǰӦ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ͷž<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ֵ<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>Ӧ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_SetKeyValue(inifile_t *ini_parse_handle ,const char* Section,const char* Key,
|
|||
|
|
char* szValue);
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD>趨ָ<EFBFBD><EFBFBD>section<EFBFBD>е<EFBFBD>ijһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Key ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param szValue <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>INI<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>֮ǰӦ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ͷž<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ֵ<EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>Ӧ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_SetKeyIntValue(inifile_t *ini_parse_handle ,const char* Section_Name,const char* Key,int value);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief ָ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> Section<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ini_Dump<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>)
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_AppendSectionM(inifile_t *ini_parse_handle,const char* Section_Name);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief ɾ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Section<EFBFBD><EFBFBD>
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ԭINI<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ɹ<EFBFBD>ɾ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[Section Name]ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_DeleteSection(inifile_t *ini_parse_handle,const char* Section);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>Section<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>KEY(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Ϊ""<EFBFBD><EFBFBD>ʾ <EFBFBD><EFBFBD>SECTION,Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[XX]<EFBFBD>µIJ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>)
|
|||
|
|
* @return <EFBFBD><EFBFBD>ԭINI<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ɹ<EFBFBD>ɾ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[Section Name]ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_AppendKeyM (inifile_t *ini_parse_handle ,const char* Section,const char* Key,const char * value);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief ɾ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Section<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param Section ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ԭINI<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ɹ<EFBFBD>ɾ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[Section Name]ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_DeleteSectionM(inifile_t *ini_parse_handle,const char* Section_Name);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>Section<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>KEY(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param sec <EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ԭINI<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ɹ<EFBFBD>ɾ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[Section Name]ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_AppendKeyMByHandle (inifile_t *ini_parse_handle ,ini_section_t *sec,const char* Key,const char * value);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>Section<EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><EFBFBD>¼<EFBFBD>ֵ(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
* @param ini_parse_handle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param sec <EFBFBD>ξ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ԭINI<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ɹ<EFBFBD>ɾ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>APR_SUCCESS
|
|||
|
|
* @mark <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>[Section Name]ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_UpdateKeyMByHandle (inifile_t *ini_parse_handle ,ini_section_t *sec,const char* Key,const char * value);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>INI<EFBFBD>ڴ澵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
*/
|
|||
|
|
APR_DECLARE(apr_status_t) ini_Dump(inifile_t *ini_parse_handle);
|
|||
|
|
#ifdef __cplusplus
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#endif /* GENERAL_DEQUE_H */
|