#ifndef INIFILE_H_ #define INIFILE_H_ #include "ax_global_type.h" #ifdef __cplusplus extern "C" { #endif typedef AX_VOID * AX_INI_HANDLE; /* 打开并解析一个名为fname的INI文件 */ AX_S32 AX_INI_Load(const AX_CHAR *fname, AX_INI_HANDLE *handle); /* 关闭文件 */ AX_S32 AX_INI_Close(AX_INI_HANDLE handle); /* 将内容保存到当前文件 */ AX_S32 AX_INI_Save(AX_INI_HANDLE handle); /* 将内容另存到一个名为fname的文件 */ AX_S32 AX_INI_SaveAs(AX_INI_HANDLE handle, const AX_CHAR *fname); /* 获取section段第一个键为key的string值,成功返回0,否则返回错误码 */ AX_S32 AX_INI_GetStringValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR **value); /* 获取section段第一个键为key的数组,成功返回0,否则返回错误码 */ AX_S32 AX_INI_GetArrayValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_F64 *value, AX_S32 *valueSize, AX_S32 maxSize); /* 获取section段第一个键为key的AX_S32值,成功返回0,否则返回错误码 */ AX_S32 AX_INI_GetIntValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_S32 *value); /* 获取section段第一个键为key的double值,成功返回0,否则返回错误码 */ AX_S32 AX_INI_GetDoubleValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_F64 *value); /* 获取section段第一个键为key的AX_BOOL值,成功返回0,否则返回错误码 */ AX_S32 AX_INI_GetBoolValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_BOOL *value); /* 获取注释,如果key=""则获取段注释 */ AX_S32 AX_INI_GetComment(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR **comment); /* 获取行尾注释,如果key=""则获取段的行尾注释 */ AX_S32 AX_INI_GetRightComment(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR **rightComment); /* 获取section段第一个键为key的string值,成功返回获取的值,否则返回默认值 */ AX_S32 AX_INI_GetStringValueOrDefault(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR **value, const AX_CHAR *defaultValue); /* 获取section段第一个键为key的AX_S32值,成功返回获取的值,否则返回默认值 */ AX_S32 AX_INI_GetIntValueOrDefault(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_S32 *value, AX_S32 defaultValue); /* 获取section段第一个键为key的double值,成功返回获取的值,否则返回默认值 */ AX_S32 AX_INI_GetDoubleValueOrDefault(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_F64 *value, AX_F64 defaultValue); /* 获取section段第一个键为key的AX_BOOL值,成功返回获取的值,否则返回默认值 */ AX_S32 AX_INI_GetBoolValueOrDefault(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_BOOL *value, AX_BOOL defaultValue); /* 获取section个数,至少存在一个空section */ AX_S32 AX_INI_GetSectionNum(AX_INI_HANDLE handle); /* 是否存在某个section */ AX_BOOL AX_INI_HasSection(AX_INI_HANDLE handle, const AX_CHAR *section); /* 是否存在某个key */ AX_BOOL AX_INI_HasKey(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key); /* 设置字符串值 */ AX_S32 AX_INI_SetStringValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR *value); /* 设置整形值 */ AX_S32 AX_INI_SetIntValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_S32 value); /* 设置浮点数值 */ AX_S32 AX_INI_SetDoubleValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_F64 value); /* 设置布尔值 */ AX_S32 AX_INI_SetBoolValue(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, AX_BOOL value); /* 设置注释,如果key=""则设置段注释 */ AX_S32 AX_INI_SetComment(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR *comment); /* 设置行尾注释,如果key=""则设置段的行尾注释 */ AX_S32 AX_INI_SetRightComment(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key, const AX_CHAR *rightComment); /* 删除段 */ AX_S32 AX_INI_DeleteSection(AX_INI_HANDLE handle, const AX_CHAR *section); /* 删除特定段的特定参数 */ AX_S32 AX_INI_DeleteKey(AX_INI_HANDLE handle, const AX_CHAR *section, const AX_CHAR *key); /*设置注释分隔符,默认为"#" */ AX_S32 AX_INI_SetCommentDelimiter(AX_INI_HANDLE handle, const AX_CHAR *delimiter); #ifdef __cplusplus } #endif #endif // INIFILE_H_