Bool ReadToken( BaseString& token, Char delimiter ) const { Iterator begin = token.IsEmpty() ? Begin() : token.End(); // skip delimiter for( ; begin != End() && *begin == delimiter; ++begin ); Iterator end = begin; // read token for( ; end != End() && *end != delimiter; ++end ); // get count ULong count = (ULong)(end - begin); // done if empty if( count == 0 ) return false; // create token token.SetMemory(begin); token.SetCount(count); return true; }