2007年5月25日 星期五

[BCB]AnsiString Hex Converter to Dec Int

/****************************************************************************
Hex String to Dec ****************************************************************************/
int __fastcall Hex2Int( AnsiString HexCode )
{
unsigned char HexNumber[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} ;

int DecNumber = 0 ;
int i,j,k ; char ch[10] ;
j = HexCode.Length() ;

for( i = 0 ; i<= j-1 ; i++ )
{
ch[i] = HexCode.operator[](i+1) ;
}

if( ch[0] != '0' )
return 0 ;

if( ch[1] != 'x' ch[1] != 'x' )
return 0 ;

for( i= 2 ; i <= j-1 ; i++ )
{
for( k= 0 ; k<= 15 ; k++ )
{
if( ch[i] == HexNumber[k] ) break ;
}

DecNumber = DecNumber k ;
DecNumber = DecNumber << 4 ;

}


DecNumber = DecNumber >> 4 ;

return DecNumber ;
}