天嵌二次封装库使用手册
V2.1.2
|
ini文件解析器. 更多...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "dictionary.h"
宏定义 | |
#define | INIPARSER_API |
函数 | |
INIPARSER_API int | iniparser_getnsec (const dictionary *d) |
获取dictionary对象的section个数 更多... | |
INIPARSER_API const char * | iniparser_getsecname (const dictionary *d, int n) |
获取dictionary对象的第n个section的名字(不能释放或修改返回的字符串!) 更多... | |
INIPARSER_API void | iniparser_dump_ini (const dictionary *d, FILE *f) |
将dictionary保存到可加载的ini文件中 更多... | |
INIPARSER_API void | iniparser_dumpsection_ini (const dictionary *d, const char *s, FILE *f) |
将dictionary的section保存到可加载的ini文件中 更多... | |
INIPARSER_API void | iniparser_dump (const dictionary *d, FILE *f) |
将字典转储到已打开的文件指针中 更多... | |
INIPARSER_API int | iniparser_getsecnkeys (const dictionary *d, const char *s) |
获取dictionary对象某个section下的key个数 更多... | |
INIPARSER_API const char ** | iniparser_getseckeys (const dictionary *d, const char *s, const char **keys) |
获取dictionary对象某个section下所有的key 更多... | |
INIPARSER_API const char * | iniparser_getstring (const dictionary *d, const char *key, const char *def) |
获取与key相关联的字符串值 更多... | |
INIPARSER_API int | iniparser_getint (const dictionary *d, const char *key, int notfound) |
获取与键相关联的字符串,转换为长int类型 更多... | |
INIPARSER_API long int | iniparser_getlongint (const dictionary *d, const char *key, long int notfound) |
获取与键相关联的字符串,转换为 long int类型 更多... | |
INIPARSER_API double | iniparser_getdouble (const dictionary *d, const char *key, double notfound) |
获取与键相关联的字符串,转换为double类型 更多... | |
INIPARSER_API int | iniparser_getboolean (const dictionary *d, const char *key, int notfound) |
获取与键相关联的字符串,然后转换为boolean类型 更多... | |
INIPARSER_API int | iniparser_set (dictionary *ini, const char *entry, const char *val) |
设置dictionary对象的某个条目(section:key的值) 更多... | |
INIPARSER_API void | iniparser_unset (dictionary *ini, const char *entry) |
删除dictionary中的一个条目(section:key) 更多... | |
INIPARSER_API int | iniparser_find_entry (const dictionary *ini, const char *entry) |
查找dictionary中是否存在一个给定的条目(section:key) 更多... | |
INIPARSER_API dictionary * | iniparser_load (const char *ininame) |
解析ini文件并返回已分配内存的dictionary对象 更多... | |
INIPARSER_API void | iniparser_freedict (dictionary *d) |
释放与ini dictionary相关联的所有内存 更多... | |
#define INIPARSER_API |
在文件 iniparser.h 第 36 行定义.
INIPARSER_API void iniparser_dump | ( | const dictionary * | d, |
FILE * | f | ||
) |
将字典转储到已打开的文件指针中
d | 要保存的dictionary对象 |
f | 已打开的要转储到的文件指针 |
该函数将dictionary的内容逐行打印到提供的文件指针上。也可以指定输出文件为 stderr
或 stdout
。此函数主要用于调试。
INIPARSER_API void iniparser_dump_ini | ( | const dictionary * | d, |
FILE * | f | ||
) |
将dictionary保存到可加载的ini文件中
d | 要保存的dictionary对象 |
f | 已打开的要转储到的文件指针 |
该函数将dictionary保存到可加载的ini文件中,也可以指定输出文件为 stderr
或 stdout
.
INIPARSER_API void iniparser_dumpsection_ini | ( | const dictionary * | d, |
const char * | s, | ||
FILE * | f | ||
) |
将dictionary的section保存到可加载的ini文件中
d | 要保存的dictionary对象 |
s | 要保存的dictionary的section名 |
f | 已打开的要转储到的文件指针 |
该函数将dictionary的section保存到可加载的ini文件中,也可以指定输出文件为 stderr
或 stdout
.
INIPARSER_API int iniparser_find_entry | ( | const dictionary * | ini, |
const char * | entry | ||
) |
查找dictionary中是否存在一个给定的条目(section:key)
ini | 要查找的dictionary对象 |
entry | 要查找的条目的名称 |
该函数查找字典中是否存在一个给定的条目。由于sections被存储为具有NULL关联值的key,因此这是查询字典中是否存在sections的唯一方法。
INIPARSER_API void iniparser_freedict | ( | dictionary * | d | ) |
释放与ini dictionary相关联的所有内存
d | 要释放的dictionary对象 |
释放与ini dictionary相关联的所有内存。必须在dictionary对象退出当前上下文之前调用此函数。
INIPARSER_API int iniparser_getboolean | ( | const dictionary * | d, |
const char * | key, | ||
int | notfound | ||
) |
获取与键相关联的字符串,然后转换为boolean类型
d | 查询的字符串对象 |
key | 要查找的key |
notfound | 当出现错误时要返回的值 |
此函数查询dictionary中的key。从ini文件中读取的一个key是"section:key"。如果找不到该key,则返回未找到的值。
如果匹配以下选项之一,则会找到真布尔值: -以"y"开头的字符串 -以"Y"开头的字符串 -以"t"开头的字符串 -以"T"开头的字符串 -以"1"开头的字符串
如果匹配以下选项之一,则会发现假布尔值: -以"n"开头的字符串 -以"N"开头的字符串 -以"f"开头的字符串 -以"F"开头的字符串 -以"0"开头的字符串
如果没有识别出布尔值,则返回的未找到的值不一定为0或1。
INIPARSER_API double iniparser_getdouble | ( | const dictionary * | d, |
const char * | key, | ||
double | notfound | ||
) |
获取与键相关联的字符串,转换为double类型
d | 查询的字符串对象 |
key | 要查找的key |
notfound | 当出现错误时要返回的值 |
此函数查询dictionary中的key。从ini文件中读取的一个key是"section:key"。如果找不到该key,则返回未找到的值。
INIPARSER_API int iniparser_getint | ( | const dictionary * | d, |
const char * | key, | ||
int | notfound | ||
) |
获取与键相关联的字符串,转换为长int类型
d | 查询的字符串对象 |
key | 要查找的key |
notfound | 当出现错误时要返回的值 |
此函数查询dictionary中的key。从ini文件中读取的一个key是"section:key"。如果找不到该key,则返回未找到的值。 支持的整数值包括通常的C表示法,因此支持十进制、八进制(以0开头)和十六进制(以0x开头)。示例:
INIPARSER_API long int iniparser_getlongint | ( | const dictionary * | d, |
const char * | key, | ||
long int | notfound | ||
) |
获取与键相关联的字符串,转换为 long int类型
d | 查询的字符串对象 |
key | 要查找的key |
notfound | 当出现错误时要返回的值 |
此函数查询dictionary中的key。从ini文件中读取的一个key是"section:key"。如果找不到该key,则返回未找到的值。 支持的整数值包括通常的C表示法,因此支持十进制、八进制(以0开头)和十六进制(以0x开头)。示例:
INIPARSER_API int iniparser_getnsec | ( | const dictionary * | d | ) |
获取dictionary对象的section个数
d | 要检查的dictionary对象 |
该函数返回在dictionary中找到的section数.而关键存储"section:key",一个section的名称为“section" 在dictionary中存储的字符串:承认sections测试完成,从而测试看起来不包含一个冒号的条目。
在sections名字包含冒号的情况下,这显然失败了,但应该避免这一点。
INIPARSER_API const char** iniparser_getseckeys | ( | const dictionary * | d, |
const char * | s, | ||
const char ** | keys | ||
) |
获取dictionary对象某个section下所有的key
d | 要检测的dictionary对象 |
s | 要检查的section名 |
keys | 存储key数组 |
该函数获取dictionary对象某个section下所有的key,参数keys是一个数组指针,每个的大小通过iniparser_getsecnkeys函数确定.
INIPARSER_API const char* iniparser_getsecname | ( | const dictionary * | d, |
int | n | ||
) |
获取dictionary对象的第n个section的名字(不能释放或修改返回的字符串!)
d | 要获取的dictionary对象 |
n | section数(从0到nsec-1) |
INIPARSER_API int iniparser_getsecnkeys | ( | const dictionary * | d, |
const char * | s | ||
) |
获取dictionary对象某个section下的key个数
d | 要检测的dictionary对象 |
s | 要检查的section名 |
INIPARSER_API const char* iniparser_getstring | ( | const dictionary * | d, |
const char * | key, | ||
const char * | def | ||
) |
获取与key相关联的字符串值
d | 查询的dictionary对象 |
key | 要查找的key |
def | 当找不到key时,要返回默认值 |
此函数查询dictionary中的key。从ini文件中读取的一个key是"section:key"。如果找不到该key, 则返回作为“def”传递的指针。返回的char指针指向dictionary中分配的字符串,不要释放或修改它。
INIPARSER_API dictionary* iniparser_load | ( | const char * | ininame | ) |
解析ini文件并返回已分配内存的dictionary对象
ininame | 要读取的ini文件的名 |
这是ini文件的解析器。调用此函数,并提供要读取的文件的名称。它返回一个不应该直接访问的dictionary对象,而是通过访问器函数来访问。 必须使用iniparser_freedict()释放返回的字典。
INIPARSER_API int iniparser_set | ( | dictionary * | ini, |
const char * | entry, | ||
const char * | val | ||
) |
设置dictionary对象的某个条目(section:key的值)
ini | 要修改的dictionary对象 |
entry | 要修改的条目(条目名称) |
val | 要关联到该条目的新值 |
如果可以在dictionary中找到给定的条目,则将其修改以包含提供的值。如果找不到,则将创建该条目。可以将val设置为空。
INIPARSER_API void iniparser_unset | ( | dictionary * | ini, |
const char * | entry | ||
) |
删除dictionary中的一个条目(section:key)
ini | 要修改的dictionary对象 |
entry | 要删除的条目(条目名称) |
如果可以找到给定的条目,那么它将从dictionary中删除