'-' 없이 쭉 연결된 경우는 Split()을 사용할 필요없이 그냥 2개씩 Substring 하여 진행하면 된다.
inline BYTE HexToByte(CString Ps_Hex)
{
BYTE Rb_Byte = (Ps_Hex[0] >= '0' && Ps_Hex[0] <= '9' ?
(Ps_Hex[0] & 0x0f) << 4 : (0x0a + tolower(Ps_Hex[0]) - 'a') << 4)
| (Ps_Hex[1] >= '0' && Ps_Hex[1] <= '9' ?
Ps_Hex[1] & 0x0f : 0x0a + tolower(Ps_Hex[1]) - 'a');
return Rb_Byte;
}
BYTE* HexToBytes(CString Ps_Str, int& Ri_Length)
{
CString* Li_Tokens = Split(Ps_Str, '-', Ri_Length);
BYTE *Rb_Bytes = new BYTE[Ri_Length];
for(int i=0; i < Ri_Length; i++)
{
Rb_Bytes[i] = HexToByte(Li_Tokens[i]);
}
delete[] Li_Tokens;
return Rb_Bytes;
}
{
BYTE Rb_Byte = (Ps_Hex[0] >= '0' && Ps_Hex[0] <= '9' ?
(Ps_Hex[0] & 0x0f) << 4 : (0x0a + tolower(Ps_Hex[0]) - 'a') << 4)
| (Ps_Hex[1] >= '0' && Ps_Hex[1] <= '9' ?
Ps_Hex[1] & 0x0f : 0x0a + tolower(Ps_Hex[1]) - 'a');
return Rb_Byte;
}
BYTE* HexToBytes(CString Ps_Str, int& Ri_Length)
{
CString* Li_Tokens = Split(Ps_Str, '-', Ri_Length);
BYTE *Rb_Bytes = new BYTE[Ri_Length];
for(int i=0; i < Ri_Length; i++)
{
Rb_Bytes[i] = HexToByte(Li_Tokens[i]);
}
delete[] Li_Tokens;
return Rb_Bytes;
}
Split() 함수에 대하여는 http://devluna.blogspot.kr/2014/12/mfc-cstring-split.html 글을 참조하면 된다.
댓글 없음:
댓글 쓰기