| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        tokenzr.h
 
- // Purpose:     interface of wxStringTokenizer
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     The behaviour of wxStringTokenizer is governed by the
 
-     wxStringTokenizer::wxStringTokenizer() or wxStringTokenizer::SetString() 
 
-     with the parameter @e mode, which may be one of the following:
 
- */
 
- enum wxStringTokenizerMode
 
- {
 
-     wxTOKEN_INVALID = -1,   ///< Invalid tokenizer mode.
 
-     /**
 
-         Default behaviour: wxStringTokenizer will behave in the same way as
 
-         @c strtok() (::wxTOKEN_STRTOK) if the delimiters string only contains
 
-         white space characters but, unlike the standard function, it will
 
-         behave like ::wxTOKEN_RET_EMPTY, returning empty tokens if this is not
 
-         the case. This is helpful for parsing strictly formatted data where
 
-         the number of fields is fixed but some of them may be empty (i.e.
 
-         @c TAB or comma delimited text files).
 
-     */
 
-     wxTOKEN_DEFAULT,
 
-     /**
 
-         In this mode, the empty tokens in the middle of the string will be returned,
 
-         i.e. @c "a::b:" will be tokenized in three tokens @c 'a', @c '' and @c 'b'. 
 
-         Notice that all trailing delimiters are ignored in this mode, not just the last one,
 
-         i.e. a string @c "a::b::" would still result in the same set of tokens.
 
-     */
 
-     wxTOKEN_RET_EMPTY,
 
-     /**
 
-         In this mode, empty trailing tokens (including the one after the last delimiter
 
-         character) will be returned as well. The string @c "a::b:" will be tokenized in
 
-         four tokens: the already mentioned ones and another empty one as the last one
 
-         and a string @c "a::b::" will have five tokens.
 
-     */
 
-     wxTOKEN_RET_EMPTY_ALL,
 
-     /**
 
-         In this mode, the delimiter character after the end of the current token (there
 
-         may be none if this is the last token) is returned appended to the token.
 
-         Otherwise, it is the same mode as ::wxTOKEN_RET_EMPTY. Notice that there is no
 
-         mode like this one but behaving like ::wxTOKEN_RET_EMPTY_ALL instead of
 
-         ::wxTOKEN_RET_EMPTY, use ::wxTOKEN_RET_EMPTY_ALL and
 
-         wxStringTokenizer::GetLastDelimiter() to emulate it.
 
-     */
 
-     wxTOKEN_RET_DELIMS,
 
-     /**
 
-         In this mode the class behaves exactly like the standard @c strtok() function:
 
-         the empty tokens are never returned.
 
-     */
 
-     wxTOKEN_STRTOK
 
- };
 
- /// Default wxStringTokenizer delimiters are the usual white space characters.
 
- #define wxDEFAULT_DELIMITERS " \t\r\n"
 
- /**
 
-     @class wxStringTokenizer
 
-     wxStringTokenizer helps you to break a string up into a number of tokens.
 
-     It replaces the standard C function @c strtok() and also extends it in a
 
-     number of ways.
 
-     To use this class, you should create a wxStringTokenizer object, give it the
 
-     string to tokenize and also the delimiters which separate tokens in the string
 
-     (by default, white space characters will be used).
 
-     Then wxStringTokenizer::GetNextToken() may be called repeatedly until 
 
-     wxStringTokenizer::HasMoreTokens() returns @false.
 
-     For example:
 
-     @code
 
-     wxStringTokenizer tokenizer("first:second:third:fourth", ":");
 
-     while ( tokenizer.HasMoreTokens() )
 
-     {
 
-         wxString token = tokenizer.GetNextToken();
 
-         // process token here
 
-     }
 
-     @endcode
 
-     @library{wxbase}
 
-     @category{data}
 
-     @see ::wxStringTokenize()
 
- */
 
- class wxStringTokenizer : public wxObject
 
- {
 
- public:
 
-     /**
 
-         Default constructor. You must call SetString() before calling any other
 
-         methods.
 
-     */
 
-     wxStringTokenizer();
 
-     /**
 
-         Constructor. Pass the string to tokenize, a string containing
 
-         delimiters, and the @a mode specifying how the string should be
 
-         tokenized.
 
-         @see SetString()
 
-    */
 
-     wxStringTokenizer(const wxString& str,
 
-                       const wxString& delims = wxDEFAULT_DELIMITERS,
 
-                       wxStringTokenizerMode mode = wxTOKEN_DEFAULT);
 
-     /**
 
-         Returns the number of tokens remaining in the input string. The number
 
-         of tokens returned by this function is decremented each time
 
-         GetNextToken() is called and when it reaches 0, HasMoreTokens()
 
-         returns @false.
 
-     */
 
-     size_t CountTokens() const;
 
-     /**
 
-         Returns the delimiter which ended scan for the last token returned by
 
-         GetNextToken() or @c NUL if there had been no calls to this function
 
-         yet or if it returned the trailing empty token in
 
-         ::wxTOKEN_RET_EMPTY_ALL mode.
 
-         @since 2.7.0
 
-     */
 
-     wxChar GetLastDelimiter() const;
 
-     /**
 
-         Returns the next token or empty string if the end of string was reached.
 
-     */
 
-     wxString GetNextToken();
 
-     /**
 
-         Returns the current position (i.e.\ one index after the last returned
 
-         token or 0 if GetNextToken() has never been called) in the original
 
-         string.
 
-     */
 
-     size_t GetPosition() const;
 
-     /**
 
-         Returns the part of the starting string without all token already extracted.
 
-     */
 
-     wxString GetString() const;
 
-     /**
 
-         Returns @true if the tokenizer has further tokens, @false if none are left.
 
-     */
 
-     bool HasMoreTokens() const;
 
-     /**
 
-         Initializes the tokenizer. Pass the string to tokenize, a string
 
-         containing delimiters, and the @a mode specifying how the string
 
-         should be tokenized.
 
-     */
 
-     void SetString(const wxString& str,
 
-                    const wxString& delims = wxDEFAULT_DELIMITERS,
 
-                    wxStringTokenizerMode mode = wxTOKEN_DEFAULT);
 
- };
 
- /** @addtogroup group_funcmacro_string */
 
- //@{
 
- /**
 
-     This is a convenience function wrapping wxStringTokenizer which simply 
 
-     returns all tokens found in the given @a str as an array.
 
-     Please see wxStringTokenizer::wxStringTokenizer for the description 
 
-     of the other parameters.
 
-     @return The array with the parsed tokens.
 
-     @header{wx/tokenzr.h}
 
- */
 
- wxArrayString 
 
- wxStringTokenize(const wxString& str,
 
-                  const wxString& delims = wxDEFAULT_DELIMITERS,
 
-                  wxStringTokenizerMode mode = wxTOKEN_DEFAULT);
 
- //@}
 
 
  |