• <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 閱讀(832) 評論(0)  編輯 收藏 引用 所屬分類: C++

            国产精品久久久久a影院| 久久精品黄AA片一区二区三区| 色综合久久88色综合天天| 夜夜亚洲天天久久| 亚洲а∨天堂久久精品| 成人资源影音先锋久久资源网| 久久精品国产WWW456C0M| 97久久国产综合精品女不卡| 蜜桃麻豆www久久| 久久久久久国产精品无码超碰| 久久93精品国产91久久综合| 777午夜精品久久av蜜臀| 国产精品一区二区久久精品无码 | 69久久精品无码一区二区| 国产成人久久精品麻豆一区| 精品久久久无码人妻中文字幕| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 国产精品伊人久久伊人电影| 久久九九久精品国产免费直播| 91麻精品国产91久久久久| 九九精品99久久久香蕉| 久久天天躁夜夜躁狠狠躁2022 | 久久人人添人人爽添人人片牛牛 | 亚洲AV无码久久| 久久精品成人欧美大片| 日韩美女18网站久久精品 | 中文国产成人精品久久不卡 | 久久久亚洲裙底偷窥综合| 久久久久亚洲AV成人网人人软件 | 亚洲天堂久久久| 久久精品中文字幕有码| 中文字幕亚洲综合久久| 91久久精品无码一区二区毛片| 97久久超碰国产精品2021| 国产精品福利一区二区久久| 国产精品99久久精品| 狠狠狠色丁香婷婷综合久久五月| 久久综合国产乱子伦精品免费| 久久婷婷国产综合精品 | 一本色道久久99一综合| 久久精品亚洲AV久久久无码|