c++builder(80分)

  • 主题发起人 主题发起人 ejb
  • 开始时间 开始时间
E

ejb

Unregistered / Unconfirmed
GUEST, unregistred user!
那位高手帮我把以下c++builder翻译成delphi!
int Cvt2Bin(unsigned char*pBin,char *pStr)
{
int len=0;
while(*pStr)
{
if(*pStr==_T('//'))
{
pStr++;
switch(*pStr)
{
case _T('n'): pStr++;
pBin[len++] = _T(0x10);
break;
case _T('r'): pStr++;
pBin[len++] = _T(0x13);
break;
case _T('x'): pStr++;
pBin[len++] = GetHex(&pStr);
break;
default: if( *pStr >= _T('0') &&
*pStr <= _T('7') )
pBin[len++] = GetOct(&pStr);
break;
}
}
else
{
pBin[len++] = (char)*pStr++;
}
}
return len;
}
int CharToHex( char c)
{
if( c >= _T('a') &&
c <= _T('f') ) return c - _T('a') + 10;
if( c >= _T('A') &&
c <= _T('F') ) return c - _T('F') + 10;
if( c >= _T('0') &&
c <= _T('9') ) return c - _T('0');
return 0;
};
int GetHex (char **ppStr)
{
int v=0;
while( _istxdigit(**ppStr)) {
v = ( v<<4) | CharToHex(**ppStr);
(*ppStr) ++;
};
return v;
};
int GetOct(char **ppStr)
{
int v= 0;
while(1) {
char c = **ppStr;
if( c >= _T('0') &&
c <= _T('7') ) {
v = (v << 3) | (c - _T('0'));
(*ppStr)++;
} else
break;
}
return v;
};
 
后退
顶部