- /*从配置文件取参数*/
- int GetParameter(char *File,char *Section,char *Keyword,char *Buffer,int Size)
- {
- FILE *fp;
- char buf[400],tmpbuf[400];
- char Sec[400] ,Key[400];
- int SecFlag = 0;
- char *ptb , *psend ;
- int len ;
- if(!(fp = fopen(File , "r")))
- {
- printf( "open file=[%s] error",File) ;
- return 1 ;
- }
- sprintf( Sec ,"[%s]",Section );
- sprintf( Key ,"%s",Keyword );
- while( !feof( fp ) ) {
- memset( buf ,0x0 ,sizeof(buf ));
- fgets(buf,sizeof(buf),fp);
- if( buf[ 0 ] == '#' )
- continue ;
- else if( memcmp(buf ,Sec ,strlen(Sec)) == 0 )
- {
- SecFlag = 1;
- continue;
- }
- else if(( buf[0] == '[' ) && SecFlag == 1 )
- {
- break;
- }
- else
- if( SecFlag == 1 )
- {
- if(memcmp( buf ,Key ,strlen(Key) ) == 0 )
- {
- memset( tmpbuf ,0x0 ,sizeof(tmpbuf));
- memcpy( tmpbuf ,&buf[strlen(Key)] ,strlen(buf) - strlen(Key) );
- len = strlen ( tmpbuf );
- if( tmpbuf[len-1] == '\n' )
- tmpbuf[len-1 ] = 0x0 ;
- len = strlen ( tmpbuf );
- ptb = tmpbuf ;
- while( *ptb == ' ' || * ptb == '=' )
- ptb ++ ;
- if( ptb - tmpbuf >= strlen(tmpbuf) )
- break;
- Size = len -( ptb - tmpbuf ) ;
- memcpy( Buffer ,ptb ,Size );
- SecFlag = 2;
- break;
- }
- continue;
- }
- }
- fclose(fp);
- if (SecFlag == 1 || SecFlag == 0 )
- return 1 ;
- else
- return 0;
- }