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