|
天嵌二次封装库使用手册
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中删除