⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readini.cpp

📁 一个PPP上网协议源码,可通过GPRS网络接入因特网.
💻 CPP
字号:
////////////////////////////////////////////////////////////////
//							      //
//         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;

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";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -