00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef skSTRINGTOKENIZER_H
00022 #define skSTRINGTOKENIZER_H
00023
00024 #include "skString.h"
00025
00026
00031 class CLASSEXPORT skStringTokenizer
00032 #ifdef __SYMBIAN32__
00033 : public CBase
00034 #endif
00035 {
00036
00037
00038 public:
00039 #ifndef __SYMBIAN32__
00040
00047 skStringTokenizer(const skString& str, const skString& delim, bool returnDelims);
00048
00059 skStringTokenizer(const skString& str, const skString& delim);
00071 skStringTokenizer(const skString& str);
00072 #endif
00073
00076 inline skStringTokenizer();
00080 virtual ~skStringTokenizer();
00081
00090 IMPORT_C void init(const skString& str, const skString& delim, bool returnDelims);
00100 IMPORT_C bool hasMoreTokens();
00101
00108 IMPORT_C skString nextToken();
00122 IMPORT_C skString nextToken(const skString& delim);
00130 IMPORT_C int countTokens();
00131 private:
00132 int m_CurrentPosition;
00133 int m_NewPosition;
00134 int m_MaxPosition;
00135 skString m_Str;
00136 skString m_Delimiters;
00137 bool m_RetDelims;
00138 bool m_DelimsChanged;
00139
00145 Char m_MaxDelimChar;
00146
00150 void setMaxDelimChar();
00156 int skipDelimiters(int startPos);
00161 int scanToken(int startPos);
00162 };
00163
00164 inline skStringTokenizer::skStringTokenizer()
00165
00166 : m_CurrentPosition(0),m_NewPosition(-1),m_MaxPosition(0),m_DelimsChanged(false)
00167 {
00168 }
00169 #endif