]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/txtstrm.tex
document LoadObject() (patch 1873045)
[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
a7af285d
VZ
42\wxheading{Library}
43
44\helpref{wxBase}{librarieslist}
45
a3c1786d
GL
46\latexignore{\rtfignore{\wxheading{Members}}}
47
0f353563 48
15d83f72 49\membersection{wxTextInputStream::wxTextInputStream}\label{wxtextinputstreamctor}
a3c1786d 50
5bb31e35 51\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ sep=" $\backslash$t"},
5487ff0f 52 \param{const wxMBConv\&}{ conv = wxConvAuto()} }
a3c1786d 53
9a32d27d 54Constructs a text stream associated to the given input stream.
a3c1786d
GL
55
56\wxheading{Parameters}
57
2348a842
VZ
58\docparam{stream}{The underlying input stream.}
59
60\docparam{sep}{The initial string separator characters.}
61
62\docparam{conv}{{\it In Unicode build only:} The encoding converter used to convert the bytes in the
63 underlying input stream to characters.}
a3c1786d 64
0f353563 65
15d83f72 66\membersection{wxTextInputStream::\destruct{wxTextInputStream}}\label{wxtextinputstreamdtor}
a3c1786d
GL
67
68\func{}{\destruct{wxTextInputStream}}{\void}
69
70Destroys the wxTextInputStream object.
71
0f353563 72
2348a842
VZ
73\membersection{wxTextInputStream::Read8}\label{wxtextinputstreamread8}
74
75\func{wxUint8}{Read8}{\param{int}{ base = 10}}
76
77Reads a single unsigned byte from the stream, given in base {\it base}.
a3c1786d 78
2348a842
VZ
79The value of {\it base} must be comprised between $2$ and $36$, inclusive, or
80be a special value $0$ which means that the usual rules of {\tt C} numbers are
81applied: if the number starts with {\tt 0x} it is considered to be in base
82$16$, if it starts with {\tt 0} - in base $8$ and in base $10$ otherwise. Note
83that you may not want to specify the base $0$ if you are parsing the numbers
84which may have leading zeroes as they can yield unexpected (to the user not
85familiar with C) results.
a3c1786d 86
0f353563 87
15d83f72 88\membersection{wxTextInputStream::Read8S}\label{wxtextinputstreamread8s}
2348a842
VZ
89
90\func{wxInt8}{Read8S}{\param{int}{ base = 10}}
91
92Reads a single signed byte from the stream.
93
94See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
95description of the {\it base} parameter.
a3c1786d 96
0f353563 97
15d83f72 98\membersection{wxTextInputStream::Read16}\label{wxtextinputstreamread16}
a3c1786d 99
2348a842
VZ
100\func{wxUint16}{Read16}{\param{int}{ base = 10}}
101
102Reads a unsigned 16 bit integer from the stream.
a3c1786d 103
2348a842
VZ
104See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
105description of the {\it base} parameter.
106
0f353563 107
15d83f72 108\membersection{wxTextInputStream::Read16S}\label{wxtextinputstreamread16s}
2348a842
VZ
109
110\func{wxInt16}{Read16S}{\param{int}{ base = 10}}
111
112Reads a signed 16 bit integer from the stream.
113
114See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
115description of the {\it base} parameter.
a3c1786d 116
0f353563 117
15d83f72 118\membersection{wxTextInputStream::Read32}\label{wxtextinputstreamread32}
a3c1786d 119
2348a842
VZ
120\func{wxUint32}{Read32}{\param{int}{ base = 10}}
121
122Reads a 32 bit unsigned integer from the stream.
123
124See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
125description of the {\it base} parameter.
126
0f353563 127
15d83f72 128\membersection{wxTextInputStream::Read32S}\label{wxtextinputstreamread32s}
2348a842
VZ
129
130\func{wxInt32}{Read32S}{\param{int}{ base = 10}}
131
132Reads a 32 bit signed integer from the stream.
a3c1786d 133
2348a842
VZ
134See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the
135description of the {\it base} parameter.
a3c1786d 136
0f353563 137
39a20489 138\membersection{wxTextInputStream::GetChar}\label{wxtextinputstreamgetchar}
bcda793a 139
0f353563 140\func{wxChar}{GetChar}{\void}
bcda793a
VZ
141
142Reads a character, returns $0$ if there are no more characters in the stream.
143
0f353563 144
15d83f72 145\membersection{wxTextInputStream::ReadDouble}\label{wxtextinputstreamreaddouble}
a3c1786d
GL
146
147\func{double}{ReadDouble}{\void}
148
149Reads a double (IEEE encoded) from the stream.
150
0f353563 151
f6bcfd97
BP
152\membersection{wxTextInputStream::ReadLine}\label{wxtextinputstreamreadline}
153
0f353563 154\func{wxString}{ReadLine}{\void}
f6bcfd97
BP
155
156Reads a line from the input stream and returns it (without the end of line
157character).
158
0f353563 159
15d83f72 160\membersection{wxTextInputStream::ReadString}\label{wxtextinputstreamreadstring}
a3c1786d 161
0f353563 162\func{wxString}{ReadString}{\void}
a3c1786d 163
f6bcfd97
BP
164{\bf NB:} This method is deprecated, use \helpref{ReadLine}{wxtextinputstreamreadline}
165or \helpref{ReadWord}{wxtextinputstreamreadword} instead.
166
167Same as \helpref{ReadLine}{wxtextinputstreamreadline}.
168
0f353563 169
f6bcfd97
BP
170\membersection{wxTextInputStream::ReadWord}\label{wxtextinputstreamreadword}
171
0f353563 172\func{wxString}{ReadWord}{\void}
f6bcfd97
BP
173
174Reads a word (a sequence of characters until the next separator) from the
175input stream.
176
177\wxheading{See also}
178
179\helpref{SetStringSeparators}{wxtextinputstreamsetstringseparators}
180
0f353563 181
f6bcfd97
BP
182\membersection{wxTextInputStream::SetStringSeparators}\label{wxtextinputstreamsetstringseparators}
183
184\func{void}{SetStringSeparators}{\param{const wxString\& }{sep}}
185
186Sets the characters which are used to define the word boundaries in
187\helpref{ReadWord}{wxtextinputstreamreadword}.
188
189The default separators are the space and {\tt TAB} characters.
a3c1786d
GL
190
191% ----------------------------------------------------------------------------
192% wxTextOutputStream
193% ----------------------------------------------------------------------------
194
195\section{\class{wxTextOutputStream}}\label{wxtextoutputstream}
196
197This class provides functions that write text datas using an output stream.
28c9c76e 198So, you can write {\it text} floats, integers.
a3c1786d 199
65045edd 200You can also simulate the C++ cout class:
b2cf617c 201
a3c1786d 202\begin{verbatim}
65045edd
RR
203 wxFFileOutputStream output( stderr );
204 wxTextOutputStream cout( output );
a3c1786d 205
65045edd
RR
206 cout << "This is a text line" << endl;
207 cout << 1234;
208 cout << 1.23456;
a3c1786d 209\end{verbatim}
3660fc40 210
7ff14117
RR
211The wxTextOutputStream writes text files (or streams) on DOS, Macintosh
212and Unix in their native formats (concerning the line ending).
213
0e10e38d
VZ
214\wxheading{Include files}
215
216<wx/txtstrm.h>
217
a7af285d
VZ
218\wxheading{Library}
219
220\helpref{wxBase}{librarieslist}
221
a3c1786d
GL
222\latexignore{\rtfignore{\wxheading{Members}}}
223
0f353563 224
15d83f72 225\membersection{wxTextOutputStream::wxTextOutputStream}\label{wxtextoutputstreamctor}
a3c1786d 226
5487ff0f 227\func{}{wxTextOutputStream}{\param{wxOutputStream\&}{ stream}, \param{wxEOL}{ mode = wxEOL\_NATIVE}, \param{const wxMBConv\&}{ conv = wxConvAuto()}}
a3c1786d 228
9a32d27d 229Constructs a text stream object associated to the given output stream.
a3c1786d
GL
230
231\wxheading{Parameters}
232
233\docparam{stream}{The output stream.}
234
b2cf617c 235\docparam{mode}{The end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.}
28c9c76e 236
9a32d27d
VZ
237\docparam{conv}{{\it In Unicode build only:} The object used to convert
238Unicode text into ASCII characters written to the output stream.}
239
0f353563 240
15d83f72 241\membersection{wxTextOutputStream::\destruct{wxTextOutputStream}}\label{wxtextoutputstreamdtor}
a3c1786d
GL
242
243\func{}{\destruct{wxTextOutputStream}}{\void}
244
245Destroys the wxTextOutputStream object.
246
0f353563 247
15d83f72 248\membersection{wxTextOutputStream::GetMode}\label{wxtextoutputstreamgetmode}
28c9c76e 249
0f353563 250\func{wxEOL}{GetMode}{\void}
28c9c76e 251
b2cf617c 252Returns the end-of-line mode. One of {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.
28c9c76e 253
0f353563
VZ
254
255\membersection{wxTextOutputStream::PutChar}\label{wxtextoutputstreamputchar}
256
257\func{void}{PutChar}{{\param wxChar }{c}}
258
259Writes a character to the stream.
260
261
15d83f72 262\membersection{wxTextOutputStream::SetMode}\label{wxtextoutputstreamsetmode}
28c9c76e 263
0f353563 264\func{void}{SetMode}{{\param wxEOL}{ mode = wxEOL\_NATIVE}}
28c9c76e 265
b2cf617c 266Set the end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.
28c9c76e 267
0f353563 268
15d83f72 269\membersection{wxTextOutputStream::Write8}\label{wxtextoutputstreamwrite8}
a3c1786d 270
0f353563 271\func{void}{Write8}{{\param wxUint8 }{i8}}
a3c1786d
GL
272
273Writes the single byte {\it i8} to the stream.
274
18591f2f 275
15d83f72 276\membersection{wxTextOutputStream::Write16}\label{wxtextoutputstreamwrite16}
a3c1786d 277
0f353563 278\func{void}{Write16}{{\param wxUint16 }{i16}}
a3c1786d
GL
279
280Writes the 16 bit integer {\it i16} to the stream.
281
0f353563 282
15d83f72 283\membersection{wxTextOutputStream::Write32}\label{wxtextoutputstreamwrite32}
a3c1786d 284
0f353563 285\func{void}{Write32}{{\param wxUint32 }{i32}}
a3c1786d
GL
286
287Writes the 32 bit integer {\it i32} to the stream.
288
0f353563 289
15d83f72 290\membersection{wxTextOutputStream::WriteDouble}\label{wxtextoutputstreamwritedouble}
a3c1786d 291
0f353563 292\func{virtual void}{WriteDouble}{{\param double }{f}}
a3c1786d
GL
293
294Writes the double {\it f} to the stream using the IEEE format.
295
0f353563 296
15d83f72 297\membersection{wxTextOutputStream::WriteString}\label{wxtextoutputstreamwritestring}
a3c1786d 298
0f353563 299\func{virtual void}{WriteString}{{\param const wxString\& }{string}}
a3c1786d 300
75240db2
VZ
301Writes {\it string} as a line. Depending on the end-of-line mode the end of
302line ('$\backslash$n') characters in the string are converted to the correct
303line ending terminator.
304