]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/txtstrm.tex
First step in background erase optimization
[wxWidgets.git] / docs / latex / wx / txtstrm.tex
CommitLineData
a3c1786d
GL
1% ----------------------------------------------------------------------------
2% wxTextInputStream
3% ----------------------------------------------------------------------------
4\section{\class{wxTextInputStream}}\label{wxtextinputstream}
5
6This class provides functions that read text datas using an input stream.
605d715d 7So, you can read {\it text} floats, integers.
a3c1786d 8
7ff14117
RR
9The wxTextInputStream correctly reads text files (or streams) in DOS, Macintosh
10and Unix formats and reports a single newline char as a line ending.
11
b453e1b2
RR
12Operator >> is overloaded and you can use this class like a standard C++ iostream.
13Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc
14and on a typical 32-bit computer, none of these match to the "long" type (wxInt32
15is defined as int on 32-bit architectures) so that you cannot use long. To avoid
b2cf617c 16problems (here and elsewhere), make use of wxInt32, wxUint32 and similar types.
a3c1786d 17
2348a842
VZ
18If you're scanning through a file using wxTextInputStream, you should check for EOF {\bf before}
19reading the next item (word / number), because otherwise the last item may get lost.
20You should however be prepared to receive an empty item (empty string / zero number) at the
21end of file, especially on Windows systems. This is unavoidable because most (but not all) files end
22with whitespace (i.e. usually a newline).
23
a3c1786d 24For example:
b2cf617c 25
a3c1786d 26\begin{verbatim}
b453e1b2 27 wxFileInputStream input( "mytext.txt" );
a3c1786d
GL
28 wxTextInputStream text( input );
29 wxUint8 i1;
30 float f2;
31 wxString line;
32
33 text >> i1; // read a 8 bit integer.
3660fc40 34 text >> i1 >> f2; // read a 8 bit integer followed by float.
a3c1786d
GL
35 text >> line; // read a text line
36\end{verbatim}
37
38\wxheading{Include files}
39
40<wx/txtstrm.h>
41
42\latexignore{\rtfignore{\wxheading{Members}}}
43
44\membersection{wxTextInputStream::wxTextInputStream}\label{wxtextinputstreamconstr}
45
5bb31e35 46\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ sep=" $\backslash$t"},
2348a842 47 \param{wxMBConv\&}{ conv = wxConvUTF8} }
a3c1786d
GL
48
49Constructs a text stream object from an input stream. Only read methods will
50be available.
51
52\wxheading{Parameters}
53
2348a842
VZ
54\docparam{stream}{The underlying input stream.}
55
56\docparam{sep}{The initial string separator characters.}
57
58\docparam{conv}{{\it In Unicode build only:} The encoding converter used to convert the bytes in the
59 underlying input stream to characters.}
a3c1786d
GL
60
61\membersection{wxTextInputStream::\destruct{wxTextInputStream}}
62
63\func{}{\destruct{wxTextInputStream}}{\void}
64
65Destroys the wxTextInputStream object.
66
2348a842
VZ
67\membersection{wxTextInputStream::Read8}\label{wxtextinputstreamread8}
68
69\func{wxUint8}{Read8}{\param{int}{ base = 10}}
70
71Reads a single unsigned byte from the stream, given in base {\it base}.
a3c1786d 72
2348a842
VZ
73The value of {\it base} must be comprised between $2$ and $36$, inclusive, or
74be a special value $0$ which means that the usual rules of {\tt C} numbers are
75applied: if the number starts with {\tt 0x} it is considered to be in base
76$16$, if it starts with {\tt 0} - in base $8$ and in base $10$ otherwise. Note
77that you may not want to specify the base $0$ if you are parsing the numbers
78which may have leading zeroes as they can yield unexpected (to the user not
79familiar with C) results.
a3c1786d 80
2348a842
VZ
81\membersection{wxTextInputStream::Read8S}
82
83\func{wxInt8}{Read8S}{\param{int}{ base = 10}}
84
85Reads a single signed byte from the stream.
86
87See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
88description of the {\it base} parameter.
a3c1786d
GL
89
90\membersection{wxTextInputStream::Read16}
91
2348a842
VZ
92\func{wxUint16}{Read16}{\param{int}{ base = 10}}
93
94Reads a unsigned 16 bit integer from the stream.
a3c1786d 95
2348a842
VZ
96See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
97description of the {\it base} parameter.
98
99\membersection{wxTextInputStream::Read16S}
100
101\func{wxInt16}{Read16S}{\param{int}{ base = 10}}
102
103Reads a signed 16 bit integer from the stream.
104
105See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
106description of the {\it base} parameter.
a3c1786d
GL
107
108\membersection{wxTextInputStream::Read32}
109
2348a842
VZ
110\func{wxUint32}{Read32}{\param{int}{ base = 10}}
111
112Reads a 32 bit unsigned integer from the stream.
113
114See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
115description of the {\it base} parameter.
116
117\membersection{wxTextInputStream::Read32S}
118
119\func{wxInt32}{Read32S}{\param{int}{ base = 10}}
120
121Reads a 32 bit signed integer from the stream.
a3c1786d 122
2348a842
VZ
123See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
124description of the {\it base} parameter.
a3c1786d 125
bcda793a
VZ
126\membersection{wxTextInputStream::ReadChar}\label{wxtextinputstreamreadchar}
127
128\func{wxChar}{wxTextInputStream::ReadChar}{\void}
129
130Reads a character, returns $0$ if there are no more characters in the stream.
131
a3c1786d
GL
132\membersection{wxTextInputStream::ReadDouble}
133
134\func{double}{ReadDouble}{\void}
135
136Reads a double (IEEE encoded) from the stream.
137
f6bcfd97
BP
138\membersection{wxTextInputStream::ReadLine}\label{wxtextinputstreamreadline}
139
140\func{wxString}{wxTextInputStream::ReadLine}{\void}
141
142Reads a line from the input stream and returns it (without the end of line
143character).
144
a3c1786d
GL
145\membersection{wxTextInputStream::ReadString}
146
147\func{wxString}{wxTextInputStream::ReadString}{\void}
148
f6bcfd97
BP
149{\bf NB:} This method is deprecated, use \helpref{ReadLine}{wxtextinputstreamreadline}
150or \helpref{ReadWord}{wxtextinputstreamreadword} instead.
151
152Same as \helpref{ReadLine}{wxtextinputstreamreadline}.
153
154\membersection{wxTextInputStream::ReadWord}\label{wxtextinputstreamreadword}
155
156\func{wxString}{wxTextInputStream::ReadWord}{\void}
157
158Reads a word (a sequence of characters until the next separator) from the
159input stream.
160
161\wxheading{See also}
162
163\helpref{SetStringSeparators}{wxtextinputstreamsetstringseparators}
164
165\membersection{wxTextInputStream::SetStringSeparators}\label{wxtextinputstreamsetstringseparators}
166
167\func{void}{SetStringSeparators}{\param{const wxString\& }{sep}}
168
169Sets the characters which are used to define the word boundaries in
170\helpref{ReadWord}{wxtextinputstreamreadword}.
171
172The default separators are the space and {\tt TAB} characters.
a3c1786d
GL
173
174% ----------------------------------------------------------------------------
175% wxTextOutputStream
176% ----------------------------------------------------------------------------
177
178\section{\class{wxTextOutputStream}}\label{wxtextoutputstream}
179
180This class provides functions that write text datas using an output stream.
28c9c76e 181So, you can write {\it text} floats, integers.
a3c1786d 182
65045edd 183You can also simulate the C++ cout class:
b2cf617c 184
a3c1786d 185\begin{verbatim}
65045edd
RR
186 wxFFileOutputStream output( stderr );
187 wxTextOutputStream cout( output );
a3c1786d 188
65045edd
RR
189 cout << "This is a text line" << endl;
190 cout << 1234;
191 cout << 1.23456;
a3c1786d 192\end{verbatim}
3660fc40 193
7ff14117
RR
194The wxTextOutputStream writes text files (or streams) on DOS, Macintosh
195and Unix in their native formats (concerning the line ending).
196
a3c1786d
GL
197\latexignore{\rtfignore{\wxheading{Members}}}
198
d7cb14ce 199\membersection{wxTextOutputStream::wxTextOutputStream}\label{wxtextoutputstreamconstr}
a3c1786d 200
605d715d 201\func{}{wxTextOutputStream}{\param{wxOutputStream\&}{ stream}, \param{wxEOL}{ mode = wxEOL\_NATIVE}}
a3c1786d
GL
202
203Constructs a text stream object from an output stream. Only write methods will
204be available.
205
206\wxheading{Parameters}
207
208\docparam{stream}{The output stream.}
209
b2cf617c 210\docparam{mode}{The end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.}
28c9c76e 211
a3c1786d
GL
212\membersection{wxTextOutputStream::\destruct{wxTextOutputStream}}
213
214\func{}{\destruct{wxTextOutputStream}}{\void}
215
216Destroys the wxTextOutputStream object.
217
28c9c76e
RR
218\membersection{wxTextOutputStream::GetMode}
219
220\func{wxEOL}{wxTextOutputStream::GetMode}{\void}
221
b2cf617c 222Returns the end-of-line mode. One of {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.
28c9c76e
RR
223
224\membersection{wxTextOutputStream::SetMode}
225
605d715d 226\func{void}{wxTextOutputStream::SetMode}{{\param wxEOL}{ mode = wxEOL\_NATIVE}}
28c9c76e 227
b2cf617c 228Set the end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.
28c9c76e 229
a3c1786d
GL
230\membersection{wxTextOutputStream::Write8}
231
b453e1b2 232\func{void}{wxTextOutputStream::Write8}{{\param wxUint8 }{i8}}
a3c1786d
GL
233
234Writes the single byte {\it i8} to the stream.
235
236\membersection{wxTextOutputStream::Write16}
237
b453e1b2 238\func{void}{wxTextOutputStream::Write16}{{\param wxUint16 }{i16}}
a3c1786d
GL
239
240Writes the 16 bit integer {\it i16} to the stream.
241
242\membersection{wxTextOutputStream::Write32}
243
b453e1b2 244\func{void}{wxTextOutputStream::Write32}{{\param wxUint32 }{i32}}
a3c1786d
GL
245
246Writes the 32 bit integer {\it i32} to the stream.
247
248\membersection{wxTextOutputStream::WriteDouble}
249
28c9c76e 250\func{virtual void}{wxTextOutputStream::WriteDouble}{{\param double }{f}}
a3c1786d
GL
251
252Writes the double {\it f} to the stream using the IEEE format.
253
254\membersection{wxTextOutputStream::WriteString}
255
28c9c76e 256\func{virtual void}{wxTextOutputStream::WriteString}{{\param const wxString\& }{string}}
a3c1786d 257
75240db2
VZ
258Writes {\it string} as a line. Depending on the end-of-line mode the end of
259line ('$\backslash$n') characters in the string are converted to the correct
260line ending terminator.
261