bool str2byte(const string& str, vector<unsigned char>& byte) { byte.clear(); string str1 = str; size_t fpos; while (string::npos != (fpos = str1.find_first_of(" \t\n\r;"))) { str1.erase(fpos, 1); } if (str1.size() % 2) return true; int i = 0; for (string::const_iterator it = str1.begin(); it != str1.end(); it += 2) { if (0 >= sscanf_s((const char*)&(*it), "%02X", &i)) { return true; } byte.push_back((unsigned char)i); } return false; }
bool str2byte(const string& str, byte* buf, DWORD& len) { string str1 = str; size_t fpos; while (string::npos != (fpos = str1.find_first_of(" \t\n\r"))) { str1.erase(fpos, 1); } int i = 0; UINT dbg = 0; for (string::const_iterator it = str1.begin(); it != str1.end(); it += 2) { if (0 >= sscanf_s((const char*)&(*it), "%02X", &i)) { return true; } buf[dbg] = ((unsigned char)i); ++dbg; if (dbg > len) { return true; }
} len = dbg; return false; }
bool str2byte(const TCHAR* pstr, vector<unsigned char>& vByte) { vByte.clear(); wstring str = pstr; size_t fpos; while (wstring::npos != (fpos = str.find_first_of(TEXT(" \t\n\r")))) { str.erase(fpos, 1); } unsigned char uc = 0; int iTmp = 0; for (wstring::const_iterator it = str.begin(); it != str.end(); it += 2) { if (0 >= _stscanf_s((const TCHAR*)&(*it), TEXT("%02X"), &iTmp)) { return true; } vByte.push_back((unsigned char)iTmp); } return false; }
#ifndef ASLUCKY_STRINGHELPER__ #define ASLUCKY_STRINGHELPER__
int byte2Str(const BYTE* bArr, const DWORD size, TCHAR* strOut, DWORD strOutLen) { strOut[0] = '\0'; if (!size) { return 0; } DWORD pos = 0; TCHAR hexval[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; for (DWORD j = 0; j < size; j++) { if (pos + 3 > strOutLen) { return 1; } strOut[pos] = hexval[((bArr[j] >> 4) & 0x0F)]; strOut[pos + 1] = hexval[(bArr[j]) & 0x0F]; strOut[pos + 2] = ' '; pos += 3;
} strOut[pos - 1] = '\0'; return 0; }
void byte2Str(const BYTE* bArr, const DWORD size, vector<TCHAR>& vstr) { vstr.clear(); vstr.reserve(500); if (!size) { vstr.push_back('\0'); return; } TCHAR hexval[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; for (DWORD j = 0; j < size; j++) { vstr.push_back(hexval[((bArr[j] >> 4) & 0x0F)]); vstr.push_back(hexval[(bArr[j]) & 0x0F]); vstr.push_back(' '); } vstr.push_back('\0'); }
void byte2StrA(const BYTE* bArr, const DWORD size, vector<CHAR>& vstr) { vstr.clear(); vstr.reserve(500); if (!size) { vstr.push_back('\0'); return; } TCHAR hexval[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; for (DWORD j = 0; j < size; j++) { vstr.push_back(hexval[((bArr[j] >> 4) & 0x0F)]); vstr.push_back(hexval[(bArr[j]) & 0x0F]); } vstr.push_back('\0'); }
|