BOOL CEmoticons::Load() { Clear(); m_pImage.Create( EMOTICON_SIZE, EMOTICON_SIZE, ILC_COLOR32|ILC_MASK, 1, 8 ) || m_pImage.Create( EMOTICON_SIZE, EMOTICON_SIZE, ILC_COLOR24|ILC_MASK, 1, 8 ) || m_pImage.Create( EMOTICON_SIZE, EMOTICON_SIZE, ILC_COLOR16|ILC_MASK, 1, 8 ); if ( ! LoadXML( Settings.General.Path + _T("\\Data\\Emoticons.xml") ) ) // Settings.General.DataPath ? return FALSE; BuildTokens(); return TRUE; }
void StringTokenizer::BuildTokens(std::string string_, std::string token_, jtoken_flag_t flag_, bool return_tokens_) { /* char *s = (char *)string_.c_str(), *t = (char *)token_.c_str(), *token = strtok(s, t); while (token != NULL) { _tokens.push_back(token); token = strtok(NULL, t); } */ if (flag_ == TOKEN_FLAG) { unsigned long idx = 0; while (true) { if (idx < string_.size()) { std::string::size_type s = string_.find_first_of(token_, idx); std::string::size_type e = string_.find_first_not_of(token_, idx); if ( !(s == idx && return_tokens_) ) { s = e; e = string_.find_first_of(token_, s); } else { e = s + 1; } idx = e; if (idx == std::string::npos) { break; } _tokens.push_back(string_.substr(s, e-s)); } else { break; } } } else if (flag_ == SPLIT_FLAG) { unsigned int pos = string_.find(token_); /* // CHANGE:: remove pos != 0, caso entre em loop if (pos != 0 && pos != std::string::npos) { _tokens.push_back(string_.substr(0, pos)); if (return_tokens_ == true) { _tokens.push_back(token_); } BuildTokens(string_.substr(pos+token_.size(), string_.length()), token_, flag_, return_tokens_); } else { _tokens.push_back(string_); } */ if (pos != std::string::npos) { _tokens.push_back(string_.substr(0, pos)); if (return_tokens_ == true) { _tokens.push_back(token_); } BuildTokens(string_.substr(pos+token_.size(), string_.length()), token_, flag_, return_tokens_); } else { _tokens.push_back(string_); } } else { throw RuntimeException("Unknown token flag"); } }
StringTokenizer::StringTokenizer(std::string string_, std::string token_, jtoken_flag_t flag_, bool return_tokens_) { jcommon::Object::SetClassName("jcommon::StringTokenizer"); BuildTokens(string_, token_, flag_, return_tokens_); }