亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? index.html

?? ini文件讀寫 功能齊全 請下載
?? HTML
字號:
<html><head>	<meta name="author"    content="ndevilla@free.fr">	<meta name="keywords"  content="ini file, config file, parser, C library">	<link href="doxygen.css" rel="stylesheet" type="text/css"><title>iniparser 2.x</title></head><body text="#000000" bgcolor="#ffffff"><!-- Generated by Doxygen 1.5.1 --><h1>iniparser documentation</h1><p><h3 align="center">2.x </h3><hr><h2><a class="anchor" name="welcome">Introduction</a></h2>iniParser is a simple C library offering ini file parsing services. The library is pretty small (less than 1500 lines of C) and robust, and does not depend on any other external library to compile. It is written in ANSI C and should compile anywhere without difficulty.<p><hr><h2><a class="anchor" name="inidef">What is an ini file?</a></h2>An ini file is an ASCII file describing simple parameters (character strings, integers, floating-point values or booleans) in an explicit format, easy to use and modify for users.<p>An ini file is segmented into Sections, declared by the following syntax:<p><div class="fragment"><pre class="fragment">    [Section Name]	</pre></div><p>i.e. the section name enclosed in square brackets, alone on a line. Sections names are allowed to contain any character but square brackets or linefeeds. Slashes (/) are also reserved for hierarchical sections (see below).<p>In any section are zero or more variables, declared with the following syntax:<p><div class="fragment"><pre class="fragment">    Key = value ; comment	</pre></div><p>The key is any string (possibly containing blanks). The value is any character on the right side of the equal sign. Values can be given enclosed with quotes. If no quotes are present, the value is understood as containing all characters between the first and the last non-blank characters. The following declarations are identical:<p><div class="fragment"><pre class="fragment">    Hello = "this is a long string value" ; comment    Hello = this is a long string value ; comment	</pre></div><p>The semicolon and comment at the end of the line are optional. If there is a comment, it starts from the first character after the semicolon up to the end of the line.<p>Comments in an ini file are:<p><ul><li>Lines starting with a hash sign</li><li>Blank lines (only blanks or tabs)</li><li>Comments given on value lines after the semicolon (if present)</li></ul><p><hr><h2><a class="anchor" name="install">Compiling/installing the library</a></h2>Edit the Makefile to indicate the C compiler you want to use, the options to provide to compile ANSI C, and possibly the options to pass to the <code>ar</code> program on your machine to build a library (.a) from a set of object (.o) files.<p>Defaults are set for the gcc compiler and the standard ar library builder.<p>Type 'make', that should do it.<p>To use the library in your programs, add the following line on top of your module:<p><div class="fragment"><pre class="fragment"><span class="preprocessor">    #include "<a class="code" href="iniparser_8h.html">iniparser.h</a>"</span></pre></div><p>And link your program with the iniparser library by adding <code>-liniparser.a</code> to the compile line.<p>See the file test/initest.c for an example.<p><hr><h2><a class="anchor" name="reference">Library reference</a></h2>The library is completely documented in its header file. On-line documentation has been generated and can be consulted here:<p><ul><li><a class="el" href="iniparser_8h.html">iniparser.h</a></li></ul><p><hr><h2><a class="anchor" name="usage">Using the parser</a></h2>Comments are discarded by the parser. Then sections are identified, and in each section a new entry is created for every keyword found. The keywords are stored with the following syntax:<p><div class="fragment"><pre class="fragment">    [Section]    Keyword = value ; comment	</pre></div><p>is converted to the following key pair:<p><div class="fragment"><pre class="fragment">    ("section:keyword", "value")	</pre></div><p>This means that if you want to retrieve the value that was stored in the section called <code>Pizza</code>, in the keyword <code>Cheese</code>, you would make a request to the dictionary for <code>"pizza:cheese"</code>. All section and keyword names are converted to lowercase before storage in the structure. The value side is conserved as it has been parsed, though.<p>Section names are also stored in the structure. They are stored using as key the section name, and a NULL associated value. They can be queried through <a class="el" href="iniparser_8h.html#3d67c98bbc0cb5239f024ad54bdc63f1">iniparser_find_entry()</a>.<p>To launch the parser, simply use the function called <a class="el" href="iniparser_8h.html#b0be559bfb769224b3f1b75e26242a67">iniparser_load()</a>, which takes an input file name and returns a newly allocated <em>dictionary</em> structure. This latter object should remain opaque to the user and only accessed through the following accessor functions:<p><ul><li><a class="el" href="iniparser_8h.html#587eafb48937fdee8ae414ad7a666db8">iniparser_getstr()</a></li><li><a class="el" href="iniparser_8h.html#694eb1110f4200db8648820a0bb405fa">iniparser_getint()</a></li><li><a class="el" href="iniparser_8h.html#480d35322f1252344cf2246ac21ee559">iniparser_getdouble()</a></li><li><a class="el" href="iniparser_8h.html#eb93c13fcbb75efaa396f53bfd73ff4d">iniparser_getboolean()</a></li></ul><p>Finally, discard this structure using <a class="el" href="iniparser_8h.html#90549ee518523921886b74454ff872eb">iniparser_freedict()</a>.<p>All values parsed from the ini file are stored as strings. The getint, getdouble and getboolean accessors are just converting these strings to the requested type on the fly, but you could basically perform this conversion by yourself after having called the getstr accessor.<p>Notice that the <a class="el" href="iniparser_8h.html#eb93c13fcbb75efaa396f53bfd73ff4d">iniparser_getboolean()</a> function will return an integer (0 or 1), trying to make sense of what was found in the file. Strings starting with "y", "Y", "t", "T" or "1" are considered true values (return 1), strings starting with "n", "N", "f", "F", "0" are considered false (return 0). This allows flexible handling of boolean answers.<p>If you want to add extra information into the structure that was not present in the ini file, you can use <a class="el" href="iniparser_8h.html#605a88057bac4c3249513fc588421c32">iniparser_setstr()</a> to insert a string.<p><hr><h2><a class="anchor" name="implementation">A word about the implementation</a></h2>The dictionary structure is a pretty simple dictionary implementation which might find some uses in other applications. If you are curious, look into the source.<p><hr><h2><a class="anchor" name="hierarchical">Hierarchical ini files</a></h2>ini files are nice to present informations to the user in a readable format, but lack a very useful feature: the possibility of organizing data in a hierarchical (tree-like) fashion. The following convention can be used to make ini files obtain this second dimension:<p>A section depends on another section if it contains its name as a prefix, separated by slashes (/). For example: we have 2 main sections in the ini file. The first one is called <code>Pizza</code> and has two child subsections called <code>Cheese</code> and <code>Ham</code>. The second main section in the ini file is called <code>Wine</code> and has two child subsections called <code>Year</code> and <code>Grape</code>. As a tree, this could appear as:<p><div class="fragment"><pre class="fragment">    |    +-- Pizza    |     +-- Cheese    |     +-- Ham    +-- Wine         +--- Year         +--- Grape	</pre></div><p>In an ini file, that would be converted to:<p><div class="fragment"><pre class="fragment">    [Pizza]    [Pizza/Cheese]    Name   = Gorgonzola ;    Origin = Italy ;    [Pizza/Ham]    Name   = Parma ;    Origin = Italy ;    [Wine]    [Wine/Year]    Value = 1998 ;    [Wine/Grape]    Name   = Cabernet Sauvignon ;    Origin = Chile ;	</pre></div><p>This proposal is actually more related to the way people write ini files, more than the parser presented here. But it is certainly a useful way of making tree-like data declarations without going through painful formats like XML.<p>Accessing the above tree would give something like (error checking removed for clarity sake):<p><div class="fragment"><pre class="fragment">    dictionary * d ;    d = <a class="code" href="iniparser_8h.html#b0be559bfb769224b3f1b75e26242a67">iniparser_load</a>(<span class="stringliteral">"example.ini"</span>);    printf(<span class="stringliteral">"cheese name is %s\n"</span>, <a class="code" href="iniparser_8h.html#587eafb48937fdee8ae414ad7a666db8">iniparser_getstr</a>(d, <span class="stringliteral">"pizza/cheese:name"</span>));    printf(<span class="stringliteral">"grape name is %s\n"</span>,  <a class="code" href="iniparser_8h.html#587eafb48937fdee8ae414ad7a666db8">iniparser_getstr</a>(d, <span class="stringliteral">"wine/grape:name"</span>));    <a class="code" href="iniparser_8h.html#90549ee518523921886b74454ff872eb">iniparser_freedict</a>(d);</pre></div><p>The whole ini file above is represented in the dictionary as the following list of pairs:<p><div class="fragment"><pre class="fragment">    key                             value    "pizza"                         NULL    "pizza/cheese"                  NULL    "pizza/cheese:name"             "Gorgonzola"    "pizza/cheese:origin"           "Italy"    "pizza/ham"                     NULL    "pizza/ham:name"                "Parma"    "pizza/ham:origin"              "Italy"    "wine"                          NULL    "wine/year"                     NULL    "wine/year:value"               "1998"    "wine/grape"                    NULL    "wine/grape:name"               "Cabernet Sauvignon"    "wine/grape:origin"             "Chile"	</pre></div><p><hr><h2><a class="anchor" name="authors">Authors</a></h2>Nicolas Devillard (ndevilla AT free DOT fr). </body></html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产丝袜欧美中文另类| 国产99久久久久| 精品日韩一区二区三区免费视频| 中文字幕一区二| 国产成人免费网站| 欧美一级生活片| 日韩av电影一区| 91精品国产欧美一区二区| 亚洲一线二线三线视频| 97超碰欧美中文字幕| 久久精品亚洲乱码伦伦中文 | 国产精品免费视频一区| 亚洲成av人片一区二区三区| 欧美三区免费完整视频在线观看| 亚洲另类一区二区| 欧洲人成人精品| 一区二区欧美精品| 成人午夜精品在线| 一区二区三区鲁丝不卡| 欧美日韩国产首页在线观看| 亚洲一二三四区不卡| 欧美精品久久99| 激情成人午夜视频| 精品国产一二三区| 成人午夜电影网站| 亚洲欧美日韩在线不卡| 这里只有精品99re| 国产黄人亚洲片| 亚洲人成在线播放网站岛国| 欧美片在线播放| 国产在线精品一区在线观看麻豆| 久久嫩草精品久久久精品一| 91香蕉视频mp4| 蜜臀91精品一区二区三区| 久久青草国产手机看片福利盒子| 色综合久久综合中文综合网| 天天色天天操综合| 欧美不卡一区二区| 日本中文一区二区三区| 综合婷婷亚洲小说| 制服视频三区第一页精品| 蜜桃在线一区二区三区| 亚洲精品成a人| 欧美成人伊人久久综合网| 成人妖精视频yjsp地址| 婷婷久久综合九色综合绿巨人 | 欧美成人福利视频| 成人免费视频国产在线观看| 亚洲午夜激情网站| 日本高清成人免费播放| 日韩电影网1区2区| **性色生活片久久毛片| 欧美电视剧免费全集观看| 在线观看成人免费视频| 久久精品国产精品亚洲红杏| 国产精品久久久久久亚洲伦| 欧美成人官网二区| 在线免费观看日本欧美| 国产精品一二三在| 久久国产综合精品| 亚洲伊人伊色伊影伊综合网| 久久久99精品免费观看| 欧美成人一区二区三区在线观看| 日本韩国欧美在线| 成人午夜免费av| 国产乱子伦视频一区二区三区| 亚洲国产精品一区二区久久| 国产三级一区二区| 欧美一二三在线| 97精品电影院| 岛国一区二区三区| 国产精品系列在线观看| 奇米色一区二区三区四区| 石原莉奈一区二区三区在线观看| 国产精品嫩草影院com| 2024国产精品| 日韩三级精品电影久久久| 91福利视频在线| 欧美在线高清视频| 在线免费精品视频| 成人国产电影网| av中文字幕亚洲| 国产91在线观看丝袜| 丝袜美腿亚洲综合| 亚洲在线视频网站| 亚洲精品乱码久久久久久久久| 精品国产乱码久久久久久免费| 欧美精品v国产精品v日韩精品| 在线免费视频一区二区| 欧美日韩第一区日日骚| 欧美色视频在线| 欧美日韩精品专区| 91精品啪在线观看国产60岁| 欧美久久一二区| 69久久夜色精品国产69蝌蚪网| 在线观看三级视频欧美| 在线影视一区二区三区| 91精品久久久久久久91蜜桃| 欧美浪妇xxxx高跟鞋交| 欧美日韩专区在线| 日韩午夜精品电影| 欧美精品一区视频| 久久免费看少妇高潮| 欧美国产成人精品| 18欧美亚洲精品| 三级在线观看一区二区 | 精品欧美一区二区在线观看| 日韩欧美不卡在线观看视频| 国产日韩欧美在线一区| 国产精品乱人伦中文| 综合久久一区二区三区| 亚洲综合色丁香婷婷六月图片| 亚洲综合一二区| 激情欧美一区二区| 蜜臀av一级做a爰片久久| 国产在线精品视频| 高清国产一区二区| 在线观看国产日韩| 日韩一区二区三区三四区视频在线观看| 欧美一区三区四区| 国产亚洲一区二区三区四区| 国产精品久久毛片| 蜜桃av一区二区在线观看| 国产精品77777竹菊影视小说| 国产精品资源站在线| 欧美日韩精品福利| 精品久久人人做人人爰| 亚洲国产日产av| 国产精品一卡二| 色综合久久中文综合久久97| 日韩一卡二卡三卡四卡| 国产精品久久久久天堂| 亚洲超碰精品一区二区| 成人国产在线观看| 欧美高清精品3d| 国产欧美日韩中文久久| 青草av.久久免费一区| 菠萝蜜视频在线观看一区| 欧美一区二区人人喊爽| 亚洲日本在线a| 久久国产麻豆精品| 欧美久久一二区| 国产精品国产自产拍在线| 日韩精品亚洲一区| 欧美亚洲一区二区三区四区| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲午夜羞羞片| 成人动漫av在线| 精品久久一区二区| 麻豆国产欧美日韩综合精品二区| 99久久国产综合精品麻豆| 欧美成人午夜电影| 青青国产91久久久久久| 91香蕉视频污| 亚洲人成影院在线观看| 国产在线国偷精品产拍免费yy| 欧洲一区二区av| 亚洲精品视频在线| www.日韩在线| 欧美美女一区二区| 亚洲国产精品久久不卡毛片| 国产成人8x视频一区二区| 精品久久久久久久一区二区蜜臀| 国产成人日日夜夜| 欧美mv日韩mv| 免费欧美日韩国产三级电影| 欧美性极品少妇| 欧美精品亚洲一区二区在线播放| 亚洲成人激情av| 色999日韩国产欧美一区二区| 亚洲欧美在线观看| 成av人片一区二区| 中文字幕免费观看一区| 成人av网址在线观看| 国产亚洲一区二区在线观看| 日韩在线观看一区二区| 欧美日韩国产免费一区二区 | 99久久99久久精品国产片果冻| 久久精品一区二区三区四区| 久久99久久99小草精品免视看| 在线欧美日韩国产| 亚洲国产成人av网| 欧美日韩中文字幕一区二区| 午夜精品福利视频网站| 欧美日韩国产首页| 美脚の诱脚舐め脚责91| 久久久影院官网| 国产九色sp调教91| 国产精品久久久久久户外露出| 成人精品视频一区| 亚洲欧美乱综合| 欧美电影一区二区| 久久国产精品第一页| 日韩欧美精品在线| 国产成人av福利| 国产精品国产自产拍在线| 欧美视频中文字幕| 日本不卡一区二区三区高清视频| 精品国产免费人成电影在线观看四季 | 精品国产一区二区三区久久久蜜月|