31 std::string
uReplaceChar(
const std::string & str,
char before,
char after)
33 std::string result = str;
34 for(
unsigned int i=0; i<result.size(); ++i)
36 if(result[i] == before)
44 std::string
uReplaceChar(
const std::string & str,
char before,
const std::string & after)
47 for(
unsigned int i=0; i<str.size(); ++i)
49 if(str.at(i) != before)
51 s.push_back(str.at(i));
63 std::string result = str;
64 for(
unsigned int i=0; i<result.size(); ++i)
67 if(result[i] >=
'a' && result[i]<=
'z')
69 result[i] = result[i] -
'a' +
'A';
77 std::string result = str;
78 for(
unsigned int i=0; i<result.size(); ++i)
81 if(result[i] >=
'A' && result[i]<=
'Z')
83 result[i] = result[i] -
'A' +
'a';
133 return !(str && (strcmp(str,
"false") == 0 || strcmp(str,
"FALSE") == 0 || strcmp(str,
"0") == 0));
136 std::string
uBytes2Hex(
const char * bytes,
unsigned int bytesLen)
139 if(!bytes || bytesLen == 0)
143 const unsigned char * bytes_u = (
const unsigned char*)(bytes);
145 hex.resize(bytesLen*2);
146 char * pHex = &hex[0];
147 const unsigned char * pEnd = (bytes_u + bytesLen);
148 for(
const unsigned char * pChar = bytes_u; pChar != pEnd; ++pChar, pHex += 2)
158 return uHex2Bytes(&hex[0], (
int)hex.length());
163 std::vector<char> bytes;
164 if(!hex || hexLen % 2 || hexLen == 0)
169 unsigned int bytesLen = hexLen / 2;
170 bytes.resize(bytesLen);
171 unsigned char * pBytes = (
unsigned char *)&bytes[0];
172 const unsigned char * pHex = (
const unsigned char *)hex;
174 unsigned char * pEnd = (pBytes + bytesLen);
175 for(
unsigned char * pChar = pBytes; pChar != pEnd; pChar++, pHex += 2)
186 return std::string(&bytes[0], bytes.size());
191 {
'0',
'0'},{
'0',
'1'},{
'0',
'2'},{
'0',
'3'},{
'0',
'4'},{
'0',
'5'},{
'0',
'6'},{
'0',
'7'},{
'0',
'8'},{
'0',
'9'},{
'0',
'A'},{
'0',
'B'},{
'0',
'C'},{
'0',
'D'},{
'0',
'E'},{
'0',
'F'},
192 {
'1',
'0'},{
'1',
'1'},{
'1',
'2'},{
'1',
'3'},{
'1',
'4'},{
'1',
'5'},{
'1',
'6'},{
'1',
'7'},{
'1',
'8'},{
'1',
'9'},{
'1',
'A'},{
'1',
'B'},{
'1',
'C'},{
'1',
'D'},{
'1',
'E'},{
'1',
'F'},
193 {
'2',
'0'},{
'2',
'1'},{
'2',
'2'},{
'2',
'3'},{
'2',
'4'},{
'2',
'5'},{
'2',
'6'},{
'2',
'7'},{
'2',
'8'},{
'2',
'9'},{
'2',
'A'},{
'2',
'B'},{
'2',
'C'},{
'2',
'D'},{
'2',
'E'},{
'2',
'F'},
194 {
'3',
'0'},{
'3',
'1'},{
'3',
'2'},{
'3',
'3'},{
'3',
'4'},{
'3',
'5'},{
'3',
'6'},{
'3',
'7'},{
'3',
'8'},{
'3',
'9'},{
'3',
'A'},{
'3',
'B'},{
'3',
'C'},{
'3',
'D'},{
'3',
'E'},{
'3',
'F'},
195 {
'4',
'0'},{
'4',
'1'},{
'4',
'2'},{
'4',
'3'},{
'4',
'4'},{
'4',
'5'},{
'4',
'6'},{
'4',
'7'},{
'4',
'8'},{
'4',
'9'},{
'4',
'A'},{
'4',
'B'},{
'4',
'C'},{
'4',
'D'},{
'4',
'E'},{
'4',
'F'},
196 {
'5',
'0'},{
'5',
'1'},{
'5',
'2'},{
'5',
'3'},{
'5',
'4'},{
'5',
'5'},{
'5',
'6'},{
'5',
'7'},{
'5',
'8'},{
'5',
'9'},{
'5',
'A'},{
'5',
'B'},{
'5',
'C'},{
'5',
'D'},{
'5',
'E'},{
'5',
'F'},
197 {
'6',
'0'},{
'6',
'1'},{
'6',
'2'},{
'6',
'3'},{
'6',
'4'},{
'6',
'5'},{
'6',
'6'},{
'6',
'7'},{
'6',
'8'},{
'6',
'9'},{
'6',
'A'},{
'6',
'B'},{
'6',
'C'},{
'6',
'D'},{
'6',
'E'},{
'6',
'F'},
198 {
'7',
'0'},{
'7',
'1'},{
'7',
'2'},{
'7',
'3'},{
'7',
'4'},{
'7',
'5'},{
'7',
'6'},{
'7',
'7'},{
'7',
'8'},{
'7',
'9'},{
'7',
'A'},{
'7',
'B'},{
'7',
'C'},{
'7',
'D'},{
'7',
'E'},{
'7',
'F'},
199 {
'8',
'0'},{
'8',
'1'},{
'8',
'2'},{
'8',
'3'},{
'8',
'4'},{
'8',
'5'},{
'8',
'6'},{
'8',
'7'},{
'8',
'8'},{
'8',
'9'},{
'8',
'A'},{
'8',
'B'},{
'8',
'C'},{
'8',
'D'},{
'8',
'E'},{
'8',
'F'},
200 {
'9',
'0'},{
'9',
'1'},{
'9',
'2'},{
'9',
'3'},{
'9',
'4'},{
'9',
'5'},{
'9',
'6'},{
'9',
'7'},{
'9',
'8'},{
'9',
'9'},{
'9',
'A'},{
'9',
'B'},{
'9',
'C'},{
'9',
'D'},{
'9',
'E'},{
'9',
'F'},
201 {
'A',
'0'},{
'A',
'1'},{
'A',
'2'},{
'A',
'3'},{
'A',
'4'},{
'A',
'5'},{
'A',
'6'},{
'A',
'7'},{
'A',
'8'},{
'A',
'9'},{
'A',
'A'},{
'A',
'B'},{
'A',
'C'},{
'A',
'D'},{
'A',
'E'},{
'A',
'F'},
202 {
'B',
'0'},{
'B',
'1'},{
'B',
'2'},{
'B',
'3'},{
'B',
'4'},{
'B',
'5'},{
'B',
'6'},{
'B',
'7'},{
'B',
'8'},{
'B',
'9'},{
'B',
'A'},{
'B',
'B'},{
'B',
'C'},{
'B',
'D'},{
'B',
'E'},{
'B',
'F'},
203 {
'C',
'0'},{
'C',
'1'},{
'C',
'2'},{
'C',
'3'},{
'C',
'4'},{
'C',
'5'},{
'C',
'6'},{
'C',
'7'},{
'C',
'8'},{
'C',
'9'},{
'C',
'A'},{
'C',
'B'},{
'C',
'C'},{
'C',
'D'},{
'C',
'E'},{
'C',
'F'},
204 {
'D',
'0'},{
'D',
'1'},{
'D',
'2'},{
'D',
'3'},{
'D',
'4'},{
'D',
'5'},{
'D',
'6'},{
'D',
'7'},{
'D',
'8'},{
'D',
'9'},{
'D',
'A'},{
'D',
'B'},{
'D',
'C'},{
'D',
'D'},{
'D',
'E'},{
'D',
'F'},
205 {
'E',
'0'},{
'E',
'1'},{
'E',
'2'},{
'E',
'3'},{
'E',
'4'},{
'E',
'5'},{
'E',
'6'},{
'E',
'7'},{
'E',
'8'},{
'E',
'9'},{
'E',
'A'},{
'E',
'B'},{
'E',
'C'},{
'E',
'D'},{
'E',
'E'},{
'E',
'F'},
206 {
'F',
'0'},{
'F',
'1'},{
'F',
'2'},{
'F',
'3'},{
'F',
'4'},{
'F',
'5'},{
'F',
'6'},{
'F',
'7'},{
'F',
'8'},{
'F',
'9'},{
'F',
'A'},{
'F',
'B'},{
'F',
'C'},{
'F',
'D'},{
'F',
'E'},{
'F',
'F'}
209 unsigned char uHex2Ascii(
const unsigned char & c,
bool rightPart)
260 std::vector<char> dynamicbuf(size);
261 char *buf = &dynamicbuf[0];
266 #if defined(WIN32) && !defined(__MINGW32__) 269 va_copy(argsTmp, args);
274 int needed = (int)vsnprintf_s(buf, size, _TRUNCATE, fmt, argsTmp);
276 int needed = (int)vsnprintf(buf, size, fmt, argsTmp);
284 if (needed < (
int)size-1 && needed >= 0) {
286 return std::string (buf, (
size_t) needed);
292 size = needed>=0?needed+2:size*2;
293 dynamicbuf.resize (size);
294 buf = &dynamicbuf[0];
296 return std::string();
303 std::string buf =
uFormatv(fmt, args);
310 wchar_t * createWCharFromChar(
const char * text)
312 DWORD
length = MultiByteToWideChar (CP_ACP, 0, text, -1,
NULL, 0);
313 wchar_t * wText =
new wchar_t[length];
314 MultiByteToWideChar (CP_ACP, 0, text, -1, wText, length );
319 char * createCharFromWChar(
const wchar_t * wText)
322 char * text =
new char[length];
323 WideCharToMultiByte (CP_ACP, 0, wText, -1, text, length,
NULL,
NULL);
std::string uFormat(const char *fmt,...)
static const char HEX2ASCII[256][2]
std::vector< char > uHex2Bytes(const std::string &hex)
std::string uReplaceChar(const std::string &str, char before, char after)
std::string uToUpperCase(const std::string &str)
Some conversion functions.
std::string uHex2Str(const std::string &hex)
std::string uBool2Str(bool boolean)
std::string uNumber2Str(unsigned int number)
unsigned char uAscii2Hex(const unsigned char &c)
std::string uBytes2Hex(const char *bytes, unsigned int bytesLen)
bool uStr2Bool(const char *str)
TFSIMD_FORCE_INLINE tfScalar length(const Quaternion &q)
std::string uToLowerCase(const std::string &str)
std::string uFormatv(const char *fmt, va_list args)
unsigned char uHex2Ascii(const unsigned char &c, bool rightPart)