00001 /* 00002 Copyright 1996-2001 00003 Simon Whiteside 00004 00005 $Id: skStringTokenizer_h-source.html,v 1.5 2001/05/09 10:32:28 sdw Exp $ 00006 */ 00007 #ifndef skSTRINGTOKENIZER_H 00008 #define skSTRINGTOKENIZER_H 00009 00010 #include "skString.h" 00011 00012 00017 class skStringTokenizer { 00018 00019 00020 public: 00031 skStringTokenizer(skString str, skString delim, bool returnDelims); 00032 00042 skStringTokenizer(skString str, skString delim); 00053 skStringTokenizer(skString str); 00054 00064 bool hasMoreTokens(); 00065 00071 skString nextToken(); 00084 skString nextToken(skString delim); 00092 int countTokens(); 00093 private: 00094 int currentPosition; 00095 int newPosition; 00096 int maxPosition; 00097 skString str; 00098 skString delimiters; 00099 bool retDelims; 00100 bool delimsChanged; 00101 00107 char maxDelimChar; 00108 00112 void setMaxDelimChar(); 00116 void init(skString str, skString delim, bool returnDelims); 00122 int skipDelimiters(int startPos); 00127 int scanToken(int startPos); 00128 }; 00129 #endif