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; }
适用于分行读入用"//"当注释的数据。