国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ini解析庫 c語言

2019-11-08 19:52:09
字體:
來源:轉載
供稿:網友

一 ini格式概述 程序沒有任何配置文件,那么它對外是全封閉的,一旦程序需要修改一些參數必須要修改程序代碼本身并重新編譯,為了讓程序出廠后還能根據需要進行必要的配置,所以要用配置文件;配置文件有很多種,如INI配置文件,xml配置文件,cfg配置文件,還有就是可以使用系統注冊表等。

本文主要介紹INI文件的格式信息。 INI ”就是英文 “initialization”的頭三個字母的縮寫;當然INI file的后綴名也不一定是".ini"也可以是".cfg",".conf ”或者是".txt"。

經典格式如下:

INI文件的格式很簡單,最基本的三個要素是:parameters,sections和comments。

什么是parameters?

INI所包含的最基本的“元素”就是parameter;每一個parameter都有一個name和一個value,如下所示:

name = value

什么是sections ?

所有的parameters都是以sections為單位結合在一起的。所有的section名稱都是獨占一行,并且sections名字都被方括號包圍著([ and ])。在section聲明后的所有parameters都是屬于該section。對于一個section沒有明顯的結束標志符,一個section的開始就是上一個section的結束,或者是end of the file。Sections一般情況下不能被nested,當然特殊情況下也可以實現sections的嵌套。

section如下所示:

[section]

什么是comments ?

在INI文件中注釋語句是以分號“;”開始的。所有的所有的注釋語句不管多長都是獨占一行直到結束的。在分號和行結束符之間的所有內容都是被忽略的。

注釋實例如下:

;comments text

當然,上面講的都是最經典的INI文件格式,隨著使用的需求INI文件的格式也出現了很多變種;

INI實例: ; last modified 1 APRil 2001 by John Doe

[owner]

name=John Doe

organization=Acme Products

[database]

server=192.0.2.42

; use ip address in case network name resolution is not working port=143 file = “acme payroll.dat”

變種格式:請參考http://en.wikipedia.org/wiki/INI_file

二 ini解析庫 github: https://github.com/ndevilla/iniparser

三 iniparser接口簡單介紹 Iniparse開源庫(不區分大小寫,且配置文件最后一行必須為空行)總共包括四個文件,iniparser.h,iniparser.c,dictionary.h,dictionary.其中dictionary為提供給iniparser的功能封裝。Iniparser提供的功能函數如下:

int iniparser_getnsec(dictionary * d); //獲取配置文件中的section的個數

char * iniparser_getsecname(dictionary * d, int n); //獲取配置文件中section名,n為索引值

void iniparser_dump_ini(dictionary * d, FILE * f); //保存配置文件至文件指針f所指的位置

void iniparser_dump(dictionary * d, FILE * f); //保存配置文件,多用于調試

char * iniparser_getstring(dictionary * d, char * key, char * def); //獲取關聯與key的字符串

int iniparser_getint(dictionary * d, char * key, int notfound); //獲取關聯與key的int值(轉換)

double iniparser_getdouble(dictionary * d, char * key, double notfound); //獲取關聯與key的double值(轉換)

int iniparser_getboolean(dictionary * d, char * key, int notfound); //獲取關聯與key的bool值(轉換)

int iniparser_set(dictionary * ini, char * entry, char * val); //修改配置文件中的一個配置項

void iniparser_unset(dictionary * ini, char * entry); //刪除配置文件中的一個配置項

int iniparser_find_entry(dictionary * ini, char * entry) ; //檢測一個配置項是否存在

dictionary * iniparser_load(char * ininame); //加載配置文件

void iniparser_freedict(dictionary * d); //釋放iniparse所占用的資源


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台北县| 松阳县| 上高县| 连山| 桦川县| 九龙坡区| 攀枝花市| 常熟市| 潜江市| 安图县| 营山县| 土默特左旗| 静乐县| 兰考县| 垫江县| 额敏县| 依安县| 汕头市| 临武县| 共和县| 名山县| 蒙阴县| 周宁县| 株洲市| 南开区| 江都市| 水城县| 和田县| 新民市| 宜君县| 霸州市| 兰西县| 永善县| 天柱县| 三台县| 商水县| 山阴县| 镇巴县| 扎兰屯市| 麦盖提县| 凤庆县|