Re: Конвертация стринга
От: fest Германия  
Дата: 06.04.04 14:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Возможно ли стандартными средствами сконвертировать стринг, в котором содержится число в шестнадцатиричной системе исчисления в кодировке ASCII в тип int? Что-то подобное atoi(), работающее ,например, с таким стрингом ['1'],['0'],['D'],['F'] ->

->> 4319 (int)
А>Спасибо.


/************** function *******************/
unsigned int HexToDec(CString tmpHexadecimal, bool *flag)
{
// funktionslokale Variablen
char hextab[17] = "0123456789ABCDEF";
int i,j;
unsigned int nDezimal = 0;

*flag = true;

tmpHexadecimal.MakeUpper();

if (tmpHexadecimal.GetLength() > 8)
{
nDezimal = 0;
*flag = false;
}
else
{
for(i=0; i < tmpHexadecimal.GetLength(); i++)
{
for(j=0; j<=16; j++)
{
if (hextab[j] == (tmpHexadecimal.GetAt(i)))
{
nDezimal = nDezimal*16 + j;
*flag = true;
break;
}
else
{
if (j == 16)
nDezimal = 0;
*flag = false;
}
}
}
}
return (nDezimal);
}

/************** call *******************/
int iResult = 0;
bool flagNoErr = false;
CString SourceString("10DF");

iResult = HexToDec(SourceString,&flagErr) //iResult==4319, flagNoErr = true
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.