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;
}
HexToChar
пример: пришло "C1040001".
Преобразую его в AnsiString получается тоде самое
потом добавляю к этому AnsiString в начало "0A0A0A" получается
"0A0A0AC1040001" теперь это надо послать обратно..
Использовала бы функция send AnsiString'и не было б проблем
а так ели пробую send(sock,HexToStr("0A0A0AC1040001").c_str(),остальное) то теряются символы 00 и 01 так как при преобразовании из AnsiString в char они исчезают. Подкиньте пожалуйста функцию преобразования AnsiString содержащую hex код в char.
Есть функция HexToStr (преобразует из hexstring в decstring):
Код:
надыбал коечто тока не вкуриваю что к чему
Код:
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;
}
{
if ( c >= '0' && c <= '9' ) {
return ( c - '0' );
}
if ( (c|0x20) >= 'a' && (c|0x20) <= 'f' ) {
return ( (c|0x20) - 'a' + 10 );
}
return -1;
}
Заранее спасибо!
Кстати, код HexToStr у тебя неверный.
спс помогло!