]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/txtstrm.tex
added functions to read/write several elements at once (patch 754986)
[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
2348a842
VZ
46\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ sep=wxT(" \t")},
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
GL
125
126\membersection{wxTextInputStream::ReadDouble}
127
128\func{double}{ReadDouble}{\void}
129
130Reads a double (IEEE encoded) from the stream.
131
f6bcfd97
BP
132\membersection{wxTextInputStream::ReadLine}\label{wxtextinputstreamreadline}
133
134\func{wxString}{wxTextInputStream::ReadLine}{\void}
135
136Reads a line from the input stream and returns it (without the end of line
137character).
138
a3c1786d
GL
139\membersection{wxTextInputStream::ReadString}
140
141\func{wxString}{wxTextInputStream::ReadString}{\void}
142
f6bcfd97
BP
143{\bf NB:} This method is deprecated, use \helpref{ReadLine}{wxtextinputstreamreadline}
144or \helpref{ReadWord}{wxtextinputstreamreadword} instead.
145
146Same as \helpref{ReadLine}{wxtextinputstreamreadline}.
147
148\membersection{wxTextInputStream::ReadWord}\label{wxtextinputstreamreadword}
149
150\func{wxString}{wxTextInputStream::ReadWord}{\void}
151
152Reads a word (a sequence of characters until the next separator) from the
153input stream.
154
155\wxheading{See also}
156
157\helpref{SetStringSeparators}{wxtextinputstreamsetstringseparators}
158
159\membersection{wxTextInputStream::SetStringSeparators}\label{wxtextinputstreamsetstringseparators}
160
161\func{void}{SetStringSeparators}{\param{const wxString\& }{sep}}
162
163Sets the characters which are used to define the word boundaries in
164\helpref{ReadWord}{wxtextinputstreamreadword}.
165
166The default separators are the space and {\tt TAB} characters.
a3c1786d
GL
167
168% ----------------------------------------------------------------------------
169% wxTextOutputStream
170% ----------------------------------------------------------------------------
171
172\section{\class{wxTextOutputStream}}\label{wxtextoutputstream}
173
174This class provides functions that write text datas using an output stream.
28c9c76e 175So, you can write {\it text} floats, integers.
a3c1786d 176
65045edd 177You can also simulate the C++ cout class:
b2cf617c 178
a3c1786d 179\begin{verbatim}
65045edd
RR
180 wxFFileOutputStream output( stderr );
181 wxTextOutputStream cout( output );
a3c1786d 182
65045edd
RR
183 cout << "This is a text line" << endl;
184 cout << 1234;
185 cout << 1.23456;
a3c1786d 186\end{verbatim}
3660fc40 187
7ff14117
RR
188The wxTextOutputStream writes text files (or streams) on DOS, Macintosh
189and Unix in their native formats (concerning the line ending).
190
a3c1786d
GL
191\latexignore{\rtfignore{\wxheading{Members}}}
192
d7cb14ce 193\membersection{wxTextOutputStream::wxTextOutputStream}\label{wxtextoutputstreamconstr}
a3c1786d 194
605d715d 195\func{}{wxTextOutputStream}{\param{wxOutputStream\&}{ stream}, \param{wxEOL}{ mode = wxEOL\_NATIVE}}
a3c1786d
GL
196
197Constructs a text stream object from an output stream. Only write methods will
198be available.
199
200\wxheading{Parameters}
201
202\docparam{stream}{The output stream.}
203
b2cf617c 204\docparam{mode}{The end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.}
28c9c76e 205
a3c1786d
GL
206\membersection{wxTextOutputStream::\destruct{wxTextOutputStream}}
207
208\func{}{\destruct{wxTextOutputStream}}{\void}
209
210Destroys the wxTextOutputStream object.
211
28c9c76e
RR
212\membersection{wxTextOutputStream::GetMode}
213
214\func{wxEOL}{wxTextOutputStream::GetMode}{\void}
215
b2cf617c 216Returns the end-of-line mode. One of {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.
28c9c76e
RR
217
218\membersection{wxTextOutputStream::SetMode}
219
605d715d 220\func{void}{wxTextOutputStream::SetMode}{{\param wxEOL}{ mode = wxEOL\_NATIVE}}
28c9c76e 221
b2cf617c 222Set the end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.
28c9c76e 223
a3c1786d
GL
224\membersection{wxTextOutputStream::Write8}
225
b453e1b2 226\func{void}{wxTextOutputStream::Write8}{{\param wxUint8 }{i8}}
a3c1786d
GL
227
228Writes the single byte {\it i8} to the stream.
229
230\membersection{wxTextOutputStream::Write16}
231
b453e1b2 232\func{void}{wxTextOutputStream::Write16}{{\param wxUint16 }{i16}}
a3c1786d
GL
233
234Writes the 16 bit integer {\it i16} to the stream.
235
236\membersection{wxTextOutputStream::Write32}
237
b453e1b2 238\func{void}{wxTextOutputStream::Write32}{{\param wxUint32 }{i32}}
a3c1786d
GL
239
240Writes the 32 bit integer {\it i32} to the stream.
241
242\membersection{wxTextOutputStream::WriteDouble}
243
28c9c76e 244\func{virtual void}{wxTextOutputStream::WriteDouble}{{\param double }{f}}
a3c1786d
GL
245
246Writes the double {\it f} to the stream using the IEEE format.
247
248\membersection{wxTextOutputStream::WriteString}
249
28c9c76e 250\func{virtual void}{wxTextOutputStream::WriteString}{{\param const wxString\& }{string}}
a3c1786d 251
75240db2
VZ
252Writes {\it string} as a line. Depending on the end-of-line mode the end of
253line ('$\backslash$n') characters in the string are converted to the correct
254line ending terminator.
255
22d6efa8 256