- int
- parse( TCHAR *strtext, unsigned char *binbuf )
- {
- size_t l = _tcslen( strtext );
- int thelen = 0;
- size_t i;
- unsigned char a;
- unsigned short t;
- for( i = 0; i < l; i++ )
- {
- if( XIEGANG == strtext[ i ] )
- {
- do
- {
- strtext[ i ] = 0x20;
- i++;
- } while( 0x0a != strtext[ i ] && 0x0d != strtext[ i ] && 0x00 != strtext[ i ] );
- }
- }
- for( i = 0; i < l; i++ )
- {
- if( ( strtext[ i ] >= '0' && strtext[ i ] <= '9' ) ||
- ( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' ) ||
- ( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' ) )
- {
- if( strtext[ i ] >= '0' && strtext[ i ] <= '9' )
- a = strtext[ i ] - '0';
- if( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' )
- a = strtext[ i ] - 'A' + 10;
- if( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' )
- a = strtext[ i ] - 'a' + 10;
- thelen++;
- if( thelen % 2 ) //如果是第奇数个1,3,5
- {
- t = a;
- }
- else
- {
- t <<= 4;
- t += a;
- *( binbuf + ( thelen / 2 ) - 1 ) = ( unsigned char )t;
- }
- }
- }
- return thelen / 2;
- }
适用于分行读入用"//"当注释的数据。