rlm@1: // StringTokenizer.cpp: implementation of the StringTokenizer class. rlm@1: // rlm@1: ////////////////////////////////////////////////////////////////////// rlm@1: rlm@1: #include "stdafx.h" rlm@1: #include "StringTokenizer.h" rlm@1: rlm@1: ////////////////////////////////////////////////////////////////////// rlm@1: // Construction/Destruction rlm@1: ////////////////////////////////////////////////////////////////////// rlm@1: rlm@1: StringTokenizer::StringTokenizer(CString str, CString del) rlm@1: { rlm@1: m_right = str; rlm@1: m_delim = del; rlm@1: } rlm@1: rlm@1: StringTokenizer::~StringTokenizer() rlm@1: {} rlm@1: rlm@1: const char *StringTokenizer::next() rlm@1: { rlm@1: int index = m_right.FindOneOf(m_delim); rlm@1: rlm@1: while (index == 0) rlm@1: { rlm@1: m_right = m_right.Right(m_right.GetLength()-1); rlm@1: index = m_right.FindOneOf(m_delim); rlm@1: } rlm@1: if (index == -1) rlm@1: { rlm@1: if (m_right.IsEmpty()) rlm@1: return NULL; rlm@1: m_token = m_right; rlm@1: m_right.Empty(); rlm@1: return m_token; rlm@1: } rlm@1: rlm@1: m_token = m_right.Left(index); rlm@1: m_right = m_right.Right(m_right.GetLength()-(1+index)); rlm@1: rlm@1: return m_token; rlm@1: } rlm@1: