• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            We do not always find visible happiness in proportion to visible virtue

            夢幻白樺林

            SHARE

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              14 Posts :: 58 Stories :: 62 Comments :: 0 Trackbacks

            公告

            常用鏈接

            留言簿(5)

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜


            ////////////////////////////////////////////////////////////////
            //                                  //
            //         Configure file Reader for VATL Version2.0          //
            //                                                            //
            //                  Author: Wang.Ping                         //
            //                                                            //
            //                       Ver 1.42                             //
            //                                                            //
            //                    Date: 18/08/99                          //
            //                                                  //
            //        (c)Copyright V.A.T.L Development Workgroup          //
            //                                                            //
            //         !Read Max Line Length = 2048                 //
            // ---------------------------------------------------------- //
            //   Funciton:                                                //
            //                                                            //
            //   char *GetStrTitle( char *Str, char *Compstr );
            //   int  Get1Par(int Num, char  *Par, char *ParStr);         //
            //   int  Get1Par(int Num, long  *Par, char *ParStr);         //
            //   int  Get1Par(int Num, int   *Par, char *ParStr);         //
            //   int  Get1Par(int Num, float *Par, char *ParStr);         //
            //   int  Get1Par(int Num, unsigned int *Par, char *ParStr);  //
            //                                                            //
            //   int GetField( char *FileName, char *Group, char *Item,   //
            //                 char *OutStr );                            //
            //   int GetField( char *FileName, char *Group, char *Item,   //
            //                 int Postion, char *OutStr );               //
            //   int GetField( char *FileName, char *Group, char *Item,   //
            //           int Postion, int  &OutStr );               //
            //   int GetField( char *FileName, char *Group, char *Item,   //
            //           int Postion, float &OutStr );              //
            //   int GetField( char *FileName, char *Group, char *Item,   //
            //           int Postion, long &OutStr );               //
            //   int GetField( char *FileName, char *Group, char *Item,   //
            //           int Postion, unsigned long &OutStr );      //
            //                                                            //
            //   int WriteField( char *FileName, char *Group, char *Item, //
            //           char *OutStr, int Mode=NEW );              //
            //   int WriteField( char *FileName, char *Group, char *Item, //
            //           int  &OutStr, int Mode=NEW );              //
            //   int WriteField( char *FileName, char *Group, char *Item, //
            //           float &OutStr, int Mode=NEW );             //
            //   int WriteField( char *FileName, char *Group, char *Item, //
            //           long  &OutStr, int Mode=NEW );             //
            //   int WriteField( char *FileName, char *Group, char *Item, //
            //           unsigned long  &OutStr, int Mode=NEW );    //
            //                                                            //
            //   int CreatGroupName( char *FileName, char *Group );       //
            //   int ModifyGroupName( char *FileName, char *Group,        //
            //                 char *NewGroup, int Mode=NEW );            //
            //                                                            //
            //   int DeleteGroup( char *FileName, char *Group );          //
            //   int DeleteField( char *FileName, char *Group,            //
            //           char *Item );                              //
            //                                                            //
            //   int FindGroupName( char *FileName, char *Group );        //
            //                                                            //
            //   char *READINI::GetVersion( );                            //
            //                                                            //
            ////////////////////////////////////////////////////////////////

            #if     !defined(_READINI_H)
            #define _READINI_H

            #define NEW    0
            #define MODIFY 1
            #define PreMemorySize      512
            #define NumricSize       256

            enum BL{ READINIOFF=0, READINION=1 };

            class READINI
            {
               
            long GetFileLen( char *FileName );
               
            //-1: File Not Found
               
            //-2: Cancle
               
            //-3: Not Enough memory
               int  CopyFile( char *OldName, char *NewName );
               BL   AutoBackup;
            public:
               READINI();
               
            //Mode = 0 ','
               
            //Mode = 1 ';'
               int  SplitMode;
               
            void SetSplitMode( int Mode );

               
            void SetAutoBackup( BL Auto=READINIOFF );

               
            void GetZero( char *Buf );
               
            void GetZeroR( char *Buf );
               
            // Return Title
               
            // Str = Str-Title
               
            // NULL=not found or Not enough memory
               char *GetStrTitle( char *Str, char *Compstr );
                
            //return 0:  OK
                
            //      -1:  Can not get int Parameters
                
            //        -2:  Not enough memory
               int  Get1Par(int Num, char  *Par, char *ParStr);
               
            int  Get1Par(int Num, long  *Par, char *ParStr);
               
            int  Get1Par(int Num, int   *Par, char *ParStr);
               
            int  Get1Par(int Num, float *Par, char *ParStr);
               
            int  Get1Par(int Num, unsigned int *Par, char *ParStr);
               
            //Read Data From "FileName"
               
            // 0: OK
               
            //-1: Can not open file
               
            //-2: No match field found
               
            //-3: Not enough memory
               int GetField( char *FileName, char *Group, char *Item, char *OutStr );
               
            int GetField( char *FileName, char *Group, char *Item, int Postion, char *OutStr );
               
            int GetField( char *FileName, char *Group, char *Item, int Postion, int  &OutStr );
               
            //int GetField( char *FileName, char *Group, char *Item, int Postion, unsigned int  &OutStr );
               int GetField( char *FileName, char *Group, char *Item, int Postion, float &OutStr );
               
            int GetField( char *FileName, char *Group, char *Item, int Postion, long &OutStr );
               
            int GetField( char *FileName, char *Group, char *Item, int Postion, unsigned long &OutStr );
               
            //Modify Data to "FileName"
               
            //-1: File Not Found
               
            //-3: Not Enough memory
               int WriteField( char *FileName, char *Group, char *Item, char *OutStr, int Mode=NEW );
               
            int WriteField( char *FileName, char *Group, char *Item, int  &OutStr, int Mode=NEW );
               
            int WriteField( char *FileName, char *Group, char *Item, unsigned &OutStr, int Mode=NEW );
               
            int WriteField( char *FileName, char *Group, char *Item, float &OutStr, int Mode=NEW );
               
            int WriteField( char *FileName, char *Group, char *Item, long  &OutStr, int Mode=NEW );
               
            int WriteField( char *FileName, char *Group, char *Item, unsigned long  &OutStr, int Mode=NEW );
               
            //
               int CreatGroupName( char *FileName, char *Group );
               
            int ModifyGroupName( char *FileName, char *Group, char *NewGroup, int Mode=NEW );
               
            //
               int DeleteGroup( char *FileName, char *Group );
               
            int DeleteField( char *FileName, char *Group, char *Item );
               
            //
               int FindGroupName( char *FileName, char *Group );
               
            //Get Version information
               char *GetVersion( );
               
            int  GetVer( );
            };

            extern READINI ReadIni;
            #endif

            這是具體實現代碼:    

            ////////////////////////////////////////////////////////////////
            //                                  //
            //         Configure file Reader for VATL Version2.0          //
            //                                                            //
            //                  Author: Wang.Ping                         //
            //                                                            //
            //                       Ver 1.3                              //
            //                                                            //
            //                    Date: 23/10/97                          //
            //                                                  //
            //        (c)Copyright V.A.T.L Development Workgroup          //
            //                                                            //
            ////////////////////////////////////////////////////////////////
            #include <string.h>
            #include 
            <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <dir.h>

            #include 
            "readini.h"
            #define  MAXBUFFER   200

            READINI ReadIni;

            READINI::READINI( )
            {
            }

            void READINI::GetZero( char *Buf )
            {
               
            int i=0, j=0;
               
            int Len=strlen( Buf );
               
            for( i=0; i<Len; i++ )
                  {
                  
            if( Buf[i]==' ' )   { j++continue; }
                  
            else
                 {
                 
            for( i=0; i<strlen(Buf)-j; i++ )
                    Buf[i]
            =Buf[i+j];
                 Buf[i]
            ='\0';
              break;
              }
                  }
               if( j==Len )
                  Buf[0]='\0';
               for( i=0; i<strlen( Buf ); i++ )
                  if( Buf[i]=='\n' )   { Buf[i]='\0'; break; }
            }
            void READINI::GetZeroR( char *Buf )
            {
               int i=0, j=0;
               for( i=0; i<strlen( Buf ); i++ )
                  {
                  if( Buf[i]==' ' )   { j++; continue; }
                  else
              {
              for( i=0; i<strlen(Buf)-j; i++ )
                 Buf[i]=Buf[i+j];
              Buf[i]='\0';
              break;
              }
                  }
               for( i=0; i<strlen( Buf ); i++ )
                  {
                  if( Buf[i]!=' ' )   { continue; }
                  else { Buf[i]='\0'; }
                  }
               for( i=0; i<strlen( Buf ); i++ )
                  if( Buf[i]=='\n' )   { Buf[i]='\0'; break; }
            }
            // 0: OK
            //-1: Can not open file
            //-2: No match field found
            int READINI::GetField( char *FileName, char *Group, char *Item, int Postion, char *OutStr )
            {
               char Buf[300];
               int i=0, FLAG=0;
               char *ptr;
               FILE *Ptr;
               if(( Ptr=fopen(FileName, "rt"))==NULL )
                  return -1;
               while( !FLAG )
                  {
                  if( fgets( Buf, 256, Ptr )==NULL )
              { FLAG=2; break; }
                  GetZero( Buf );

                  if( !stricmp( Buf, Group ) )
              {
              for( ;; )
                 {
                 if( fgets( Buf, 256, Ptr )==NULL )
                    break;
                 GetZero( Buf );
                 if( Buf[i]=='[' ) { FLAG=2; break; }
                 else if( Buf[i]=='<' ) { FLAG=2; break; }
                 else if( Buf[i]=='(' ) { FLAG=2; break; }
                 ptr=strtok( Buf,"=" );
                 GetZero( ptr );
                 //GetZeroR( ptr );
                 if( !stricmp( Item, ptr ) )
                    {
                    for( i=0; i<Postion+1; i++ )
                {
                ptr=strtok( NULL,"," );
                GetZero( ptr );
                //GetZeroR( ptr );
                if(ptr==NULL)
                   { if( FLAG!=1 ) FLAG=2;  break; }
                else
                   { strcpy( OutStr, ptr ); FLAG=1; }
                }
                    }
                 if( FLAG==1 || FLAG==2 )   break;
                 }
              }
                  }
               GetZero( OutStr );
               fclose( Ptr );
               if( FLAG==1 )
                  return 0;
               else
                  return -2;
            }
            // 0: OK
            //-1: Can not open file
            //-2: No match field found
            int READINI::GetField( char *FileName, char *Group, char *Item, int Postion, int &OutStr )
            {
               char Out_Str[300];
               int i=GetField( FileName, Group, Item, Postion, Out_Str );
               OutStr = atoi( Out_Str );
               return i;
            }
            // 0: OK
            //-1: Can not open file
            //-2: No match field found
            int READINI::GetField( char *FileName, char *Group, char *Item, int Postion, float &OutStr )
            {
               char Out_Str[300];
               int i=GetField( FileName, Group, Item, Postion, Out_Str );
               OutStr = atof( Out_Str );
               return i;
            }

            // 0: OK
            //-1: Can not open file
            //-2: No match field found
            int READINI::GetField( char *FileName, char *Group, char *Item, int Postion, long &OutStr )
            {
               char Out_Str[300];
               int i=GetField( FileName, Group, Item, Postion, Out_Str );
               OutStr = atol( Out_Str );
               return i;
            }
            //return 0:  OK
            //      -1:  Can not get int Parameters
            int READINI::Get1Par(int Num, char* Par, char *ParStr)
            {
               char strptr[MAXBUFFER];
               char *ptr;
               strcpy(strptr, ParStr);
               ptr=strtok(strptr,",");
               if( ptr==NULL )   return -1;
               //GetZero( ptr );
               for(int i=0; i<Num; i++)
                  {
                  if(ptr==NULL)
              return -1;
                  else
              ptr=strtok(NULL,",");
                  }
               if( ptr==NULL ) return -1;
               GetZero( ptr );
               strcpy( Par, ptr );
               return 0;
            }
            //return 0:  OK
            //      -1:  Can not get int Parameters
            int READINI::Get1Par(int Num, int *Par, char *ParStr)
            {
               char Par_Str[257];
               int i=Get1Par( Num, Par_Str, ParStr );
               *Par = atoi( Par_Str );
               return i;
            }
            //return 0:  OK
            //      -1:  Can not get int Parameters
            int READINI::Get1Par(int Num, float *Par, char *ParStr)
            {
               char Par_Str[257];
               int i=Get1Par( Num, Par_Str, ParStr );
               *Par = atof( Par_Str );
               return i;
            }
            //return 0:  OK
            //      -1:  Can not get int Parameters
            int READINI::Get1Par(int Num, unsigned int *Par, char *ParStr)
            {
               char Par_Str[257];
               int i=Get1Par( Num, Par_Str, ParStr );
               *Par = atoi( Par_Str );
               return i;
            }
            //return 0:  OK
            //      -1:  Can not get int Parameters
            int READINI::Get1Par(int Num, long *Par, char *ParStr)
            {
               char Par_Str[257];
               int i=Get1Par( Num, Par_Str, ParStr );
               *Par = atol( Par_Str );
               return i;
            }

            char *READINI::GetVersion( )
            {
               return "1.30";
            }

             

                  由于是純C++代碼,在VC/EVC中直接使用即可。

            posted on 2007-07-19 22:21 colys 閱讀(831) 評論(0)  編輯 收藏 引用 所屬分類: C++

            亚洲综合久久久| 伊人丁香狠狠色综合久久| 亚洲午夜无码AV毛片久久| 日韩亚洲国产综合久久久| 久久中文字幕精品| 韩国免费A级毛片久久| 91久久精品电影| 亚洲国产精品无码久久SM| 91麻精品国产91久久久久| 亚洲国产精品一区二区三区久久 | 国产AV影片久久久久久| 亚洲国产成人精品无码久久久久久综合| 伊人久久大香线蕉成人| 99久久婷婷国产综合精品草原| 四虎国产精品成人免费久久| 国产精品岛国久久久久| 久久精品国产AV一区二区三区| 久久电影网2021| 人妻少妇久久中文字幕一区二区 | 久久精品国产99久久久古代| 2020最新久久久视精品爱| 久久水蜜桃亚洲av无码精品麻豆| 久久精品免费网站网| 久久成人影院精品777| 久久婷婷五月综合成人D啪| 久久久久久久99精品免费观看| 亚洲va久久久久| 青青久久精品国产免费看 | 精品综合久久久久久98| 亚洲精品高清久久| 久久久久亚洲AV成人片| 7777久久久国产精品消防器材| 成人精品一区二区久久| 久久综合综合久久97色| 久久久青草青青亚洲国产免观| 麻豆成人久久精品二区三区免费| 久久综合久久美利坚合众国 | 久久精品国产亚洲AV无码偷窥| 亚洲第一极品精品无码久久| 亚洲午夜久久久久久久久久| 久久久久久久女国产乱让韩|