35 #if defined(_WIN32) || defined(_WIN64) 37 return path.substr( path.find_last_of(
'\\' ) +1 );
40 return path.substr( path.find_last_of(
'/' ) +1 );
44 std::string
onlyDir(
const std::string& path)
46 #if defined(_WIN32) || defined(_WIN64) 48 return path.substr(0, path.find_last_of(
'\\' ) +1 );
51 return path.substr(0, path.find_last_of(
'/' ) +1 );
96 ASSERT((s[0] >=
'0' && s[0] <=
'9') ||
97 (s[0] >=
'a' && s[0] <=
'f'));
98 ASSERT((s[1] >=
'0' && s[1] <=
'9') ||
99 (s[1] >=
'a' && s[1] <=
'f'));
102 if(s[0] <=
'9' && s[0] >=
'0')
103 high = s[0]-(int)
'0';
105 high = s[0] -(int)
'a' + 10;
107 if(s[1] <=
'9' && s[1] >=
'0')
110 low = s[1] -(int)
'a' + 10;
115 std::string
digitString(
unsigned int thisDigit,
unsigned int maxDigit)
117 std::string s,thisStr;
121 for(
unsigned int ui=0;ui<s.size();ui++)
125 s=s.substr(0,s.size()-thisStr.size());
137 std::string
stripChars(
const std::string &str,
const char *chars)
146 start = str.find_first_not_of(chars);
147 end = str.find_last_not_of(chars);
148 if(start == string::npos)
151 return string(str, start,
158 std::vector<std::string> tVec;
159 tVec.reserve(sVec.size());
161 for(
unsigned int ui=0;ui<sVec.size(); ui++)
169 tVec.back().swap(sVec[ui]);
178 for(
unsigned int ui=0;ui<s.size();ui++)
180 if(isalpha(s[ui]) && isupper(s[ui]))
181 s[ui] = tolower(s[ui]);
187 void splitStrsRef(
const char *cpStr,
const char delim,std::vector<string> &v )
189 const char *thisMark, *lastMark;
202 str.assign(lastMark,thisMark-lastMark);
212 if(thisMark!=lastMark)
214 str.assign(lastMark,thisMark-lastMark);
221 void splitStrsRef(
const char *cpStr,
const char *delim,std::vector<string> &v )
223 const char *thisMark, *lastMark;
251 str.assign(lastMark,thisMark-lastMark);
261 if(thisMark!=lastMark)
263 str.assign(lastMark,thisMark-lastMark);
270 unsigned char &r,
unsigned char &g,
unsigned char &b,
unsigned char &a)
274 if(str.size() != 9 && str.size() != 7)
285 if(!isxdigit(rS[0]) || !isxdigit(rS[1]))
287 if(!isxdigit(gS[0]) || !isxdigit(gS[1]))
289 if(!isxdigit(bS[0]) || !isxdigit(bS[1]))
301 if(!isxdigit(aS[0]) || !isxdigit(aS[1]))
309 unsigned char b, std::string &s)
std::string onlyDir(const std::string &path)
Return only the directory name component of the full path.
std::string onlyFilename(const std::string &path)
Return only the filename component.
std::string stripWhite(const std::string &str)
Strip whitespace, (eg tab,space) from either side of a string.
void nullifyMarker(char *buffer, char marker)
std::string digitString(unsigned int thisDigit, unsigned int maxDigit)
Generate a string with leading digits up to maxDigit (eg, if maxDigit is 424, and thisDigit is 1...
void ucharToHexStr(unsigned char c, std::string &s)
void genColString(unsigned char r, unsigned char g, unsigned char b, unsigned char a, std::string &s)
void splitStrsRef(const char *cpStr, const char delim, std::vector< std::string > &v)
Split string references using a single delimiter.
std::string lowercase(std::string s)
Return a lowercase version for a given string.
bool parseColString(const std::string &str, unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
Parse a colour string containing rgb[a]; hex for with leading #.
bool stream_cast(T1 &result, const T2 &obj)
Template function to cast and object to another by the stringstream.
void stripZeroEntries(std::vector< std::string > &s)
void hexStrToUChar(const std::string &s, unsigned char &c)
std::string stripChars(const std::string &Str, const char *chars)