• <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++

            久久亚洲日韩看片无码| 久久亚洲国产中v天仙www| 久久国产美女免费观看精品| 久久SE精品一区二区| 亚洲欧美伊人久久综合一区二区| 婷婷五月深深久久精品| 久久中文娱乐网| 欧美亚洲另类久久综合婷婷| 国产精品亚洲综合久久| 波多野结衣中文字幕久久| 亚洲午夜福利精品久久| 久久亚洲精品中文字幕| 久久久久国产成人精品亚洲午夜| 久久久亚洲AV波多野结衣| 国产ww久久久久久久久久| 狠狠综合久久AV一区二区三区 | 2021国产精品久久精品| 东京热TOKYO综合久久精品 | 国产精品女同久久久久电影院| 国产高清美女一级a毛片久久w| 一本久久a久久精品vr综合| 国产精品日韩深夜福利久久| 国产成人无码久久久精品一| 四虎影视久久久免费观看| 国产高潮久久免费观看| 97精品国产97久久久久久免费| 久久AV无码精品人妻糸列| 精品久久久久久久久免费影院| 国产精品无码久久久久| 久久婷婷综合中文字幕| 久久免费的精品国产V∧| 2020国产成人久久精品| 久久久午夜精品| 国内精品伊人久久久影院| 欧美久久天天综合香蕉伊| 久久久久女教师免费一区| 国产精品欧美亚洲韩国日本久久| 久久96国产精品久久久| 国产精品岛国久久久久| 久久er国产精品免费观看2| 精品多毛少妇人妻AV免费久久|