00001 #ifndef __CStringTokeniser__ 00002 #define __CStringTokeniser__ 00003 00004 // =========================================================================== 00005 00006 #include "CString.hpp" 00007 using Exponent::Basics::CString; 00008 00009 // =========================================================================== 00010 00011 namespace Exponent 00012 { 00013 namespace Basics 00014 { 00047 class CStringTokeniser : public CCountedObject 00048 { 00050 EXPONENT_CLASS_DECLARATION; 00053 // =========================================================================== 00054 00055 public: 00056 00057 // =========================================================================== 00058 00059 const static long CSTRING_TOKENISER_MAX_STRING = 2048; 00061 // =========================================================================== 00062 00067 CStringTokeniser(const char *string); 00068 00073 CStringTokeniser(const CString &string); 00074 00080 CStringTokeniser(const char *string, const char token); 00081 00087 CStringTokeniser(const CString &string, const char token); 00088 00092 virtual ~CStringTokeniser(); 00093 00094 // =========================================================================== 00095 00100 virtual long getNumberOfTokens(); 00101 00106 virtual bool hasMoreTokens(); 00107 00108 // =========================================================================== 00109 00114 virtual void setTokenizationCharacter(const char token); 00115 00120 virtual void setStringToTokenize(const char *string); 00121 00122 // =========================================================================== 00123 00128 virtual char *getNextToken(); 00129 00135 bool getNextToken(CString &string); 00136 00137 // =========================================================================== 00138 00139 protected: 00140 00141 // =========================================================================== 00142 00143 long m_numberOfTokens; 00144 long m_numberOfTokensReturned; 00145 long m_lastTokenPosition; 00146 char m_string[CSTRING_TOKENISER_MAX_STRING]; 00147 char m_token; 00149 // =========================================================================== 00150 00151 }; 00152 } 00153 } 00154 #endif // End of CStringTokeniser.hpp