Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

HexToChar

9.5K
24 января 2007 года
zergman
53 / / 09.11.2006
Функцией recv принамаю строки вида hex,
пример: пришло "C1040001".
Преобразую его в AnsiString получается тоде самое
потом добавляю к этому AnsiString в начало "0A0A0A" получается
"0A0A0AC1040001" теперь это надо послать обратно..
Использовала бы функция send AnsiString'и не было б проблем
а так ели пробую send(sock,HexToStr("0A0A0AC1040001").c_str(),остальное) то теряются символы 00 и 01 так как при преобразовании из AnsiString в char они исчезают. Подкиньте пожалуйста функцию преобразования AnsiString содержащую hex код в char.
Есть функция HexToStr (преобразует из hexstring в decstring):
Код:
AnsiString HexToStr(AnsiString p)
{
int stringlength=p.Length();
if(stringlength%2==1)
return("Error string length isn't agreed.");
AnsiString tempchar="",tempcharA;
for(int i=1;i<=stringlength;i+=2)
{
tempcharA="0x";
tempcharA+=p;
tempcharA+=p[i+1];
tempchar+=(char)tempcharA.ToInt();
}
return tempchar;
}

надыбал коечто тока не вкуриваю что к чему
Код:
char HexToChar(char *c)
{
        if ( c >= '0' && c <= '9' ) {

        return ( c - '0' );

    }

        if ( (c|0x20) >= 'a' && (c|0x20) <= 'f' ) {

        return ( (c|0x20) - 'a'  + 10 );

    }

    return -1;
}

Заранее спасибо!
11K
24 января 2007 года
.nornad
125 / / 04.01.2007
У AnsiString есть замечательный метод data(). Думаю, после HexToStr вызов data() тебе будет полезней, чем вызывать кучу раз какой-нибудь HexToChar.
Кстати, код HexToStr у тебя неверный.
9.5K
26 января 2007 года
zergman
53 / / 09.11.2006
спс помогло!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог