]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/tokenizr.tex
On wxMac don't call Refresh from FullPaint as that is the biggest
[wxWidgets.git] / docs / latex / wx / tokenizr.tex
CommitLineData
d134d2d4
JS
1\section{\class{wxStringTokenizer}}\label{wxstringtokenizer}
2
7c968cee
VZ
3wxStringTokenizer helps you to break a string up into a number of tokens. It
4replaces the standard C function {\tt strtok()} and also extends it in a
5number of ways.
d134d2d4 6
bbf8fc53
VZ
7To use this class, you should create a wxStringTokenizer object, give it the
8string to tokenize and also the delimiters which separate tokens in the string
9(by default, white space characters will be used).
10
11Then \helpref{GetNextToken}{wxstringtokenizergetnexttoken} may be called
12repeatedly until it \helpref{HasMoreTokens}{wxstringtokenizerhasmoretokens}
719ee7c4 13returns \false.
bbf8fc53
VZ
14
15For example:
16
17\begin{verbatim}
18
7e34b934 19wxStringTokenizer tkz(wxT("first:second:third:fourth"), wxT(":"));
bbf8fc53
VZ
20while ( tkz.HasMoreTokens() )
21{
22 wxString token = tkz.GetNextToken();
23
24 // process token here
25}
26\end{verbatim}
27
7c968cee
VZ
28By default, wxStringTokenizer will behave in the same way as {\tt strtok()} if
29the delimiters string only contains white space characters but, unlike the
30standard function, it will return empty tokens if this is not the case. This
31is helpful for parsing strictly formatted data where the number of fields is
32fixed but some of them may be empty (i.e. {\tt TAB} or comma delimited text
33files).
34
35The behaviour is governed by the last
36\helpref{constructor}{wxstringtokenizerwxstringtokenizer}/\helpref{SetString}{wxstringtokenizersetstring}
37parameter {\tt mode} which may be one of the following:
38
39\twocolwidtha{5cm}%
40\begin{twocollist}\itemsep=0pt
41\twocolitem{{\tt wxTOKEN\_DEFAULT}}{Default behaviour (as described above):
42same as {\tt wxTOKEN\_STRTOK} if the delimiter string contains only
43whitespaces, same as {\tt wxTOKEN\_RET\_EMPTY} otherwise}
44\twocolitem{{\tt wxTOKEN\_RET\_EMPTY}}{In this mode, the empty tokens in the
45middle of the string will be returned, i.e. {\tt "a::b:"} will be tokenized in
46three tokens `a', `' and `b'.}
47\twocolitem{{\tt wxTOKEN\_RET\_EMPTY\_ALL}}{In this mode, empty trailing token
48(after the last delimiter character) will be returned as well. The string as
49above will contain four tokens: the already mentioned ones and another empty
50one as the last one.}
51\twocolitem{{\tt wxTOKEN\_RET\_DELIMS}}{In this mode, the delimiter character
52after the end of the current token (there may be none if this is the last
53token) is returned appended to the token. Otherwise, it is the same mode as
54{\tt wxTOKEN\_RET\_EMPTY}.}
55\twocolitem{{\tt wxTOKEN\_STRTOK}}{In this mode the class behaves exactly like
56the standard {\tt strtok()} function. The empty tokens are never returned.}
57\end{twocollist}
bbf8fc53 58
d134d2d4
JS
59\wxheading{Derived from}
60
61\helpref{wxObject}{wxobject}
62
954b8ae6
JS
63\wxheading{Include files}
64
65<wx/tokenzr.h>
66
d134d2d4
JS
67\latexignore{\rtfignore{\wxheading{Members}}}
68
719ee7c4 69
d134d2d4
JS
70\membersection{wxStringTokenizer::wxStringTokenizer}\label{wxstringtokenizerwxstringtokenizer}
71
dbdb39b2
JS
72\func{}{wxStringTokenizer}{\void}
73
7c968cee
VZ
74Default constructor. You must call
75\helpref{SetString}{wxstringtokenizersetstring} before calling any other
76methods.
dbdb39b2 77
7c968cee 78\func{}{wxStringTokenizer}{\param{const wxString\& }{str}, \param{const wxString\& }{delims = " $\backslash$t$\backslash$r$\backslash$n"}, \param{wxStringTokenizerMode }{mode = wxTOKEN\_DEFAULT}}
d134d2d4 79
7c968cee
VZ
80Constructor. Pass the string to tokenize, a string containing delimiters
81and the mode specifying how the string should be tokenized.
d134d2d4 82
719ee7c4 83
d134d2d4
JS
84\membersection{wxStringTokenizer::CountTokens}\label{wxstringtokenizercounttokens}
85
ad813b00 86\constfunc{int}{CountTokens}{\void}
d134d2d4 87
719ee7c4
VZ
88Returns the number of tokens remaining in the input string. The number of
89tokens returned by this function is decremented each time
90\helpref{GetNextToken}{wxstringtokenizergetnexttoken} is called and when it
91reaches $0$ \helpref{HasMoreTokens}{wxstringtokenizerhasmoretokens} returns
92\false.
93
d134d2d4 94
ad813b00 95\membersection{wxStringTokenizer::HasMoreTokens}\label{wxstringtokenizerhasmoretokens}
d134d2d4 96
ad813b00 97\constfunc{bool}{HasMoreTokens}{\void}
d134d2d4 98
719ee7c4
VZ
99Returns \true if the tokenizer has further tokens, \false if none are left.
100
d134d2d4 101
ad813b00 102\membersection{wxStringTokenizer::GetNextToken}\label{wxstringtokenizergetnexttoken}
d134d2d4 103
7c968cee 104\func{wxString}{GetNextToken}{\void}
d134d2d4 105
bbf8fc53
VZ
106Returns the next token or empty string if the end of string was reached.
107
719ee7c4 108
bbf8fc53
VZ
109\membersection{wxStringTokenizer::GetPosition}\label{wxstringtokenizergetposition}
110
111\constfunc{size\_t}{GetPosition}{\void}
112
113Returns the current position (i.e. one index after the last returned
114token or 0 if GetNextToken() has never been called) in the original
115string.
d134d2d4 116
719ee7c4 117
d134d2d4
JS
118\membersection{wxStringTokenizer::GetString}\label{wxstringtokenizergetstring}
119
ad813b00 120\constfunc{wxString}{GetString}{\void}
d134d2d4 121
bbf8fc53 122Returns the part of the starting string without all token already extracted.
d134d2d4 123
719ee7c4 124
dbdb39b2
JS
125\membersection{wxStringTokenizer::SetString}\label{wxstringtokenizersetstring}
126
7c968cee 127\func{void}{SetString}{\param{const wxString\& }{to\_tokenize}, \param{const wxString\& }{delims = " $\backslash$t$\backslash$r$\backslash$n"}, \param{wxStringTokenizerMode }{mode = wxTOKEN\_DEFAULT}}
d134d2d4 128
dbdb39b2
JS
129Initializes the tokenizer.
130
131Pass the string to tokenize, a string containing delimiters,
7c968cee 132and the mode specifying how the string should be tokenized.
d134d2d4 133