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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? simpleini.h

?? This code is Address book code for Windows Mobile. This source code support windows mobile 5.0 over.
?? H
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/** @mainpage

    <table>
        <tr><th>Library     <td>SimpleIni
        <tr><th>File        <td>SimpleIni.h
        <tr><th>Author      <td>Brodie Thiesfield [code at jellycan dot com]
        <tr><th>Source      <td>http://code.jellycan.com/simpleini/
        <tr><th>Version     <td>4.5
    </table>

    Jump to the @link CSimpleIniTempl CSimpleIni @endlink interface documentation.

    @section intro INTRODUCTION

    This component allows an INI-style configuration file to be used on both
    Windows and Linux/Unix. It is fast, simple and source code using this
    component will compile unchanged on either OS.


    @section features FEATURES

    - MIT Licence allows free use in all software (including GPL and commercial)
    - multi-platform (Windows 95/98/ME/NT/2K/XP/2003, Windows CE, Linux, Unix)
    - loading and saving of INI-style configuration files
    - configuration files can have any newline format on all platforms
    - liberal acceptance of file format
        - key/values with no section
        - removal of whitespace around sections, keys and values
    - support for multi-line values (values with embedded newline characters)
    - optional support for multiple keys with the same name
    - optional case-insensitive sections and keys (for ASCII characters only)
    - saves files with sections and keys in the same order as they were loaded
    - preserves comments on the file, section and keys where possible.
    - supports both char or wchar_t programming interfaces
    - supports both MBCS (system locale) and UTF-8 file encodings
    - system locale does not need to be UTF-8 on Linux/Unix to load UTF-8 file
    - support for non-ASCII characters in section, keys, values and comments
    - support for non-standard character types or file encodings
      via user-written converter classes
    - support for adding/modifying values programmatically
    - compiles cleanly in the following compilers:
        - Windows/VC6 (warning level 3)
        - Windows/VC.NET 2003 (warning level 4)
        - Windows/VC 2005 (warning level 4)
        - Linux/gcc (-Wall)


    @section usage USAGE SUMMARY

    -#  Define the appropriate symbol for the converter you wish to use and
        include the SimpleIni.h header file. If no specific converter is defined
        then the default converter is used. The default conversion mode uses
        SI_CONVERT_WIN32 on Windows and SI_CONVERT_GENERIC on all other
        platforms. If you are using ICU then SI_CONVERT_ICU is supported on all
        platforms.
    -#  Declare an instance the appropriate class. Note that the following
        definitions are just shortcuts for commonly used types. Other types
        (PRUnichar, unsigned short, unsigned char) are also possible.
        <table>
            <tr><th>Interface   <th>Case-sensitive  <th>Load UTF-8  <th>Load MBCS   <th>Typedef
        <tr><th>SI_CONVERT_GENERIC
            <tr><td>char        <td>No              <td>Yes         <td>Yes #1      <td>CSimpleIniA
            <tr><td>char        <td>Yes             <td>Yes         <td>Yes         <td>CSimpleIniCaseA
            <tr><td>wchar_t     <td>No              <td>Yes         <td>Yes         <td>CSimpleIniW
            <tr><td>wchar_t     <td>Yes             <td>Yes         <td>Yes         <td>CSimpleIniCaseW
        <tr><th>SI_CONVERT_WIN32
            <tr><td>char        <td>No              <td>No #2       <td>Yes         <td>CSimpleIniA
            <tr><td>char        <td>Yes             <td>Yes         <td>Yes         <td>CSimpleIniCaseA
            <tr><td>wchar_t     <td>No              <td>Yes         <td>Yes         <td>CSimpleIniW
            <tr><td>wchar_t     <td>Yes             <td>Yes         <td>Yes         <td>CSimpleIniCaseW
        <tr><th>SI_CONVERT_ICU
            <tr><td>char        <td>No              <td>Yes         <td>Yes         <td>CSimpleIniA
            <tr><td>char        <td>Yes             <td>Yes         <td>Yes         <td>CSimpleIniCaseA
            <tr><td>UChar       <td>No              <td>Yes         <td>Yes         <td>CSimpleIniW
            <tr><td>UChar       <td>Yes             <td>Yes         <td>Yes         <td>CSimpleIniCaseW
        </table>
        #1  On Windows you are better to use CSimpleIniA with SI_CONVERT_WIN32.<br>
        #2  Only affects Windows. On Windows this uses MBCS functions and
            so may fold case incorrectly leading to uncertain results.
    -# Call Load() or LoadFile() to load and parse the INI configuration file
    -# Access and modify the data of the file using the following functions
        <table>
            <tr><td>GetAllSections  <td>Return all section names
            <tr><td>GetAllKeys      <td>Return all key names within a section
            <tr><td>GetAllValues    <td>Return all values within a section & key
            <tr><td>GetSection      <td>Return all key names and values in a section
            <tr><td>GetSectionSize  <td>Return the number of keys in a section
            <tr><td>GetValue        <td>Return a value for a section & key
            <tr><td>SetValue        <td>Add or update a value for a section & key
            <tr><td>Delete          <td>Remove a section, or a key from a section
        </table>
    -# Call Save() or SaveFile() to save the INI configuration data

    @section iostreams IO STREAMS

    SimpleIni supports reading from and writing to STL IO streams. Enable this
    by defining SI_SUPPORT_IOSTREAMS before including the SimpleIni.h header
    file. Ensure that if the streams are backed by a file (e.g. ifstream or
    ofstream) then the flag ios_base::binary has been used when the file was
    opened.

    @section multiline MULTI-LINE VALUES

    Values that span multiple lines are created using the following format.

        <pre>
        key = <<<ENDTAG
        .... multiline value ....
        ENDTAG
        </pre>

    Note the following:
    - The text used for ENDTAG can be anything and is used to find
      where the multi-line text ends.
    - The newline after ENDTAG in the start tag, and the newline
      before ENDTAG in the end tag is not included in the data value.
    - The ending tag must be on it's own line with no whitespace before
      or after it.
    - The multi-line value is modified at load so that each line in the value
      is delimited by a single '\\n' character on all platforms. At save time
      it will be converted into the newline format used by the current
      platform.

    @section comments COMMENTS

    Comments are preserved in the file within the following restrictions:
    - Every file may have a single "file comment". It must start with the
      first character in the file, and will end with the first non-comment
      line in the file.
    - Every section may have a single "section comment". It will start
      with the first comment line following the file comment, or the last
      data entry. It ends at the beginning of the section.
    - Every key may have a single "key comment". This comment will start
      with the first comment line following the section start, or the file
      comment if there is no section name.
    - MultiKey entries may have only a single comment and will take the
      comment associated with the first key found.
    - Comments are set at the time that the file, section or key is first
      created. The only way to modify a comment on a section or a key is to
      delete that entry and recreate it with the new comment. There is no
      way to change the file comment.

    @section save SAVE ORDER

    The sections and keys are written out in the same order as they were
    read in from the file. Sections and keys added to the data after the
    file has been loaded will be added to the end of the file when it is
    written. There is no way to specify the location of a section or key
    other than in first-created, first-saved order.

    @section notes NOTES

    - To load UTF-8 data on Windows 95, you need to use Microsoft Layer for
      Unicode, or SI_CONVERT_GENERIC, or SI_CONVERT_ICU.
    - When using SI_CONVERT_GENERIC, ConvertUTF.c must be compiled and linked.
    - When using SI_CONVERT_ICU, ICU header files must be on the include
      path and icuuc.lib must be linked in.
    - To load a UTF-8 file on Windows AND expose it with SI_CHAR == char,
      you should use SI_CONVERT_GENERIC.
    - The collation (sorting) order used for sections and keys returned from
      iterators is NOT DEFINED. If collation order of the text is important
      then it should be done yourself by either supplying a replacement
      SI_STRLESS class, or by sorting the strings external to this library.
    - Usage of the <mbstring.h> header on Windows can be disabled by defining
      SI_NO_MBCS. This is defined automatically on Windows CE platforms.


    @section licence MIT LICENCE

    The licence text below is the boilerplate "MIT Licence" used from:
    http://www.opensource.org/licenses/mit-license.php

    Copyright (c) 2006, Brodie Thiesfield

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is furnished
    to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
    FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
    COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
    IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#ifndef INCLUDED_SimpleIni_h
#define INCLUDED_SimpleIni_h

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif

// Disable these warnings in MSVC:
//  4127 "conditional expression is constant" as the conversion classes trigger
//  it with the statement if (sizeof(SI_CHAR) == sizeof(char)). This test will
//  be optimized away in a release build.
//  4503 'insert' : decorated name length exceeded, name was truncated
//  4702 "unreachable code" as the MS STL header causes it in release mode.
//  Again, the code causing the warning will be cleaned up by the compiler.
//  4786 "identifier truncated to 256 characters" as this is thrown hundreds
//  of times VC6 as soon as STL is used.
#ifdef _MSC_VER
# pragma warning (push)
# pragma warning (disable: 4127 4503 4702 4786)
#endif

#include <string>
#include <map>
#include <list>
#include <algorithm>
#include <stdio.h>

#ifdef SI_SUPPORT_IOSTREAMS
# include <iostream>
#endif // SI_SUPPORT_IOSTREAMS

#ifdef _DEBUG
# ifndef assert
#  include <cassert>
# endif
# define SI_ASSERT(x)   assert(x)
#else
# define SI_ASSERT(x)
#endif

enum SI_Error {
    SI_OK       =  0,   //!< No error
    SI_UPDATED  =  1,   //!< An existing value was updated
    SI_INSERTED =  2,   //!< A new value was inserted

    // note: test for any error with (retval < 0)
    SI_FAIL     = -1,   //!< Generic failure
    SI_NOMEM    = -2,   //!< Out of memory error
    SI_FILE     = -3    //!< File error (see errno for detail error)
};

#define SI_UTF8_SIGNATURE     "\xEF\xBB\xBF"

#ifdef _WIN32
# define SI_NEWLINE_A   "\r\n"
# define SI_NEWLINE_W   L"\r\n"
#else // !_WIN32
# define SI_NEWLINE_A   "\n"
# define SI_NEWLINE_W   L"\n"
#endif // _WIN32

#if defined(SI_CONVERT_ICU)
# include <unicode/ustring.h>
#endif

#if defined(_WIN32)
# define SI_HAS_WIDE_FILE
# define SI_WCHAR_T     wchar_t
#elif defined(SI_CONVERT_ICU)
# define SI_HAS_WIDE_FILE
# define SI_WCHAR_T     UChar
#endif


// ---------------------------------------------------------------------------
//                              MAIN TEMPLATE CLASS
// ---------------------------------------------------------------------------

/** Simple INI file reader.

    This can be instantiated with the choice of unicode or native characterset,
    and case sensitive or insensitive comparisons of section and key names.
    The supported combinations are pre-defined with the following typedefs:

    <table>
        <tr><th>Interface   <th>Case-sensitive  <th>Typedef
        <tr><td>char        <td>No              <td>CSimpleIniA
        <tr><td>char        <td>Yes             <td>CSimpleIniCaseA
        <tr><td>wchar_t     <td>No              <td>CSimpleIniW
        <tr><td>wchar_t     <td>Yes             <td>CSimpleIniCaseW
    </table>

    Note that using other types for the SI_CHAR is supported. For instance,
    unsigned char, unsigned short, etc. Note that where the alternative type
    is a different size to char/wchar_t you may need to supply new helper
    classes for SI_STRLESS and SI_CONVERTER.
 */
template<class SI_CHAR, class SI_STRLESS, class SI_CONVERTER>
class CSimpleIniTempl
{
public:
    /** key entry */
    struct Entry {
        const SI_CHAR * pItem;
        const SI_CHAR * pComment;
        int             nOrder;

        Entry(const SI_CHAR * a_pszItem = NULL, int a_nOrder = 0)
            : pItem(a_pszItem)
            , pComment(NULL)
            , nOrder(a_nOrder)
        { }
        Entry(const Entry & rhs) { operator=(rhs); }
        Entry & operator=(const Entry & rhs) {
            pItem    = rhs.pItem;
            pComment = rhs.pComment;
            nOrder   = rhs.nOrder;
            return *this;
        }

#if defined(_MSC_VER) && _MSC_VER <= 1200
        /** STL of VC6 doesn't allow me to specify my own comparator for list::sort() */
        bool operator<(const Entry & rhs) const { return LoadOrder()(*this, rhs); }
        bool operator>(const Entry & rhs) const { return LoadOrder()(rhs, *this); }
#endif

        /** Strict less ordering by name of key only */
        struct KeyOrder : std::binary_function<Entry, Entry, bool> {
            bool operator()(const Entry & lhs, const Entry & rhs) const {
                const static SI_STRLESS isLess = SI_STRLESS();
                return isLess(lhs.pItem, rhs.pItem);
            }
        };

        /** Strict less ordering by order, and then name of key */
        struct LoadOrder : std::binary_function<Entry, Entry, bool> {
            bool operator()(const Entry & lhs, const Entry & rhs) const {
                if (lhs.nOrder != rhs.nOrder) {
                    return lhs.nOrder < rhs.nOrder;
                }
                return KeyOrder()(lhs.pItem, rhs.pItem);
            }
        };
    };

    /** map keys to values */
    typedef std::multimap<Entry,const SI_CHAR *,typename Entry::KeyOrder> TKeyVal;

    /** map sections to key/value map */
    typedef std::map<Entry,TKeyVal,typename Entry::KeyOrder> TSection;

    /** set of dependent string pointers. Note that these pointers are
        dependent on memory owned by CSimpleIni.
    */
    typedef std::list<Entry> TNamesDepend;

    /** interface definition for the OutputWriter object to pass to Save()
        in order to output the INI file data.
    */
    class OutputWriter {
    public:
        OutputWriter() { }
        virtual ~OutputWriter() { }
        virtual void Write(const char * a_pBuf) = 0;
    private:
        OutputWriter(const OutputWriter &);             // disable
        OutputWriter & operator=(const OutputWriter &); // disable
    };

    /** OutputWriter class to write the INI data to a file */
    class FileWriter : public OutputWriter {
        FILE * m_file;
    public:

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91.xcao| 欧美三级视频在线播放| 日本伊人色综合网| 亚洲h动漫在线| 日韩一区精品视频| 人人精品人人爱| 午夜欧美2019年伦理| 亚洲成人免费视频| 午夜精品影院在线观看| 日本不卡一区二区三区高清视频| 99综合影院在线| 国产电影精品久久禁18| 国产成人av福利| 成人黄色软件下载| 色噜噜偷拍精品综合在线| 在线观看视频一区二区| 在线综合视频播放| 精品成a人在线观看| 国产欧美一区二区精品性| 中文字幕日韩精品一区| 一二三四社区欧美黄| 视频一区二区欧美| 国产在线精品一区二区不卡了| 国产成人啪免费观看软件| 久久新电视剧免费观看| 亚洲乱码日产精品bd| 亚洲蜜桃精久久久久久久| 亚洲国产一二三| 日韩电影一二三区| 国产精品一区二区在线观看网站| 成人网在线免费视频| 色婷婷av一区二区三区gif| 欧美日韩免费不卡视频一区二区三区| 69成人精品免费视频| 精品久久五月天| 国产精品国产三级国产普通话蜜臀 | 成人网男人的天堂| 欧美中文字幕一二三区视频| 欧美videos大乳护士334| 国产精品欧美久久久久一区二区 | 国产精品99久久久久久似苏梦涵| 成人爱爱电影网址| 一区二区三区四区av| 日韩成人一级大片| 成人免费视频免费观看| 欧美视频一二三区| 久久久国产精品不卡| 国产精品一区二区久激情瑜伽| 成人小视频在线观看| 色就色 综合激情| 精品国产一区a| 亚洲综合免费观看高清完整版 | 国内外成人在线视频| 一本色道久久加勒比精品| 欧美大片在线观看一区二区| 亚洲视频一区二区免费在线观看| 六月婷婷色综合| 91福利在线观看| 国产清纯在线一区二区www| 午夜精品久久久久久不卡8050| 国产麻豆精品95视频| 欧美日韩一区二区欧美激情| 国产精品美女久久久久久| 六月丁香婷婷久久| 欧美日韩国产首页| 中文字幕一区二区在线观看| 激情文学综合丁香| 欧美三级在线视频| 亚洲免费观看在线观看| 精品一区二区国语对白| 欧美日韩卡一卡二| 亚洲视频 欧洲视频| 国产精品123区| 精品女同一区二区| 男人的天堂久久精品| 欧美性一级生活| 亚洲色图欧美激情| 成人国产在线观看| 毛片不卡一区二区| 欧美伊人久久久久久久久影院| 欧美国产日韩a欧美在线观看| 美女一区二区在线观看| 欧美老肥妇做.爰bbww视频| 亚洲欧洲综合另类| 91伊人久久大香线蕉| 国产精品私人影院| 国产sm精品调教视频网站| 精品国产伦理网| 久久99精品国产.久久久久久| 欧美人狂配大交3d怪物一区| 夜夜爽夜夜爽精品视频| 色婷婷综合激情| 亚洲欧美一区二区三区国产精品| 成人三级在线视频| 中文字幕一区二区在线播放 | 国产福利一区在线| 国产一区二区免费视频| 日韩一区和二区| 午夜影院在线观看欧美| 欧美人牲a欧美精品| 午夜激情一区二区三区| 欧美色图天堂网| 亚洲综合色在线| 欧美日韩视频在线第一区| 亚洲成人av电影在线| 欧美日韩综合在线| 香蕉av福利精品导航| 91精品久久久久久蜜臀| 免费亚洲电影在线| 日韩午夜激情av| 狠狠色2019综合网| 国产校园另类小说区| 成人一级视频在线观看| 国产精品视频在线看| 99久久99久久精品国产片果冻| 亚洲视频狠狠干| 欧美视频一二三区| 麻豆精品蜜桃视频网站| 精品福利在线导航| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 99re这里只有精品首页| 一区二区在线观看免费| 欧美人妖巨大在线| 久久99国产精品久久99果冻传媒| 久久一夜天堂av一区二区三区| 国产成人免费网站| 亚洲美女视频在线观看| 欧美情侣在线播放| 黄页网站大全一区二区| 亚洲国产高清不卡| 在线观看av一区| 蜜臀精品久久久久久蜜臀| 欧美国产欧美综合| 日本高清免费不卡视频| 日本视频一区二区| 久久精品水蜜桃av综合天堂| 国产目拍亚洲精品99久久精品| 9人人澡人人爽人人精品| 亚洲国产你懂的| 精品久久久久久久久久久久久久久 | 717成人午夜免费福利电影| 久久激情五月激情| 国产精品国产三级国产专播品爱网 | 色婷婷精品久久二区二区蜜臀av| 一区二区三区加勒比av| 日韩欧美亚洲国产另类| av动漫一区二区| 日本午夜精品视频在线观看 | 一区二区在线观看视频| 精品剧情在线观看| 一本大道av伊人久久综合| 久久99久久99小草精品免视看| 综合在线观看色| 日韩欧美一二区| 欧美在线观看一区| 国产精品一区二区在线观看不卡 | 欧美精品色一区二区三区| 成人免费三级在线| 日韩av在线发布| 亚洲欧洲无码一区二区三区| 91精品国产色综合久久久蜜香臀| 成人一区在线观看| 久久成人综合网| 亚洲午夜电影在线观看| 国产精品美女一区二区| 日韩欧美久久久| 欧美日韩一区视频| 不卡大黄网站免费看| 极品美女销魂一区二区三区免费| 亚洲精品视频在线| 国产午夜精品一区二区三区四区 | 老司机精品视频一区二区三区| 亚洲国产va精品久久久不卡综合| 日韩一区二区视频在线观看| 国产99久久久精品| 奇米777欧美一区二区| 一区二区三区免费观看| 精品免费一区二区三区| 日韩一级黄色大片| 日韩午夜av电影| 日韩一区二区三区三四区视频在线观看| 欧美高清你懂得| 777a∨成人精品桃花网| 欧美一区二区三区日韩| 欧美一区二区三级| 欧美一级搡bbbb搡bbbb| 51精品国自产在线| 日韩欧美亚洲一区二区| 精品99一区二区| 国产亚洲精品久| 亚洲国产精品黑人久久久| 国产精品久久久久永久免费观看 | 91蝌蚪porny| 欧美视频在线观看一区| 欧美另类久久久品| 精品少妇一区二区三区在线播放| 久久久激情视频| 亚洲视频在线观看三级| 亚洲电影在线播放| 琪琪一区二区三区|