]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/datistrm.tex
Added wxPATH_NORM_SHORTCUT
[wxWidgets.git] / docs / latex / wx / datistrm.tex
CommitLineData
f6106dae
VZ
1\section{\class{wxDataInputStream}}\label{wxdatainputstream}
2
3This class provides functions that read binary data types in a
2edb0bde 4portable way. Data can be read in either big-endian or little-endian
f6106dae
VZ
5format, little-endian being the default on all architectures.
6
7If you want to read data from text files (or streams) use
8\helpref{wxTextInputStream}{wxtextinputstream} instead.
9
10The >> operator is overloaded and you can use this class like a standard C++ iostream.
11Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc
12and on a typical 32-bit computer, none of these match to the "long" type (wxInt32
13is defined as signed int on 32-bit architectures) so that you cannot use long. To avoid
14problems (here and elsewhere), make use of the wxInt32, wxUint32, etc types.
15
16For example:
17
18\begin{verbatim}
19 wxFileInputStream input( "mytext.dat" );
20 wxDataInputStream store( input );
21 wxUint8 i1;
22 float f2;
23 wxString line;
24
25 store >> i1; // read a 8 bit integer.
26 store >> i1 >> f2; // read a 8 bit integer followed by float.
27 store >> line; // read a text line
28\end{verbatim}
29
30See also \helpref{wxDataOutputStream}{wxdataoutputstream}.
31
32\wxheading{Derived from}
33
34None
35
36\wxheading{Include files}
37
38<wx/datstrm.h>
39
40\latexignore{\rtfignore{\wxheading{Members}}}
41
42\membersection{wxDataInputStream::wxDataInputStream}\label{wxdatainputstreamconstr}
43
44\func{}{wxDataInputStream}{\param{wxInputStream\&}{ stream}}
45
a99acbb0
VS
46\func{}{wxDataInputStream}{\param{wxInputStream\&}{ stream}, \param{wxMBConv\&}{ conv = wxMBConvUTF8}}
47
f6106dae 48Constructs a datastream object from an input stream. Only read methods will
a99acbb0 49be available. The second form is only available in Unicode build of wxWindows.
f6106dae
VZ
50
51\wxheading{Parameters}
52
53\docparam{stream}{The input stream.}
54
a99acbb0
VS
55\docparam{conv}{Charset conversion object object used to decode strings in Unicode
56mode (see \helpref{wxDataInputStream::ReadString}{wxdatainputstreamreadstring}
57documentation for detailed description). Note that you must not destroy
58{\it conv} before you destroy this wxDataInputStream instance!}
59
f6106dae
VZ
60\membersection{wxDataInputStream::\destruct{wxDataInputStream}}
61
62\func{}{\destruct{wxDataInputStream}}{\void}
63
64Destroys the wxDataInputStream object.
65
66\membersection{wxDataInputStream::BigEndianOrdered}
67
68\func{void}{BigEndianOrdered}{\param{bool}{ be\_order}}
69
cc81d32f 70If {\it be\_order} is true, all data will be read in big-endian
f6106dae
VZ
71order, such as written by programs on a big endian architecture
72(e.g. Sparc) or written by Java-Streams (which always use
73big-endian order).
74
75\membersection{wxDataInputStream::Read8}
76
77\func{wxUint8}{Read8}{\void}
78
79Reads a single byte from the stream.
80
53663be8
VZ
81\func{void}{Read8}{\param{wxUint8 *}{buffer}, \param{size\_t }{size}}
82
83Reads bytes from the stream in a specified buffer. The amount of
84bytes to read is specified by the {\it size} variable.
85
f6106dae
VZ
86\membersection{wxDataInputStream::Read16}
87
88\func{wxUint16}{Read16}{\void}
89
4d1cbdbe 90Reads a 16 bit unsigned integer from the stream.
f6106dae 91
53663be8
VZ
92\func{void}{Read16}{\param{wxUint16 *}{buffer}, \param{size\_t }{size}}
93
94Reads 16 bit unsigned integers from the stream in a specified buffer. the
95amount of 16 bit unsigned integer to read is specified by the {\it size} variable.
96
f6106dae
VZ
97\membersection{wxDataInputStream::Read32}
98
99\func{wxUint32}{Read32}{\void}
100
4d1cbdbe
VZ
101Reads a 32 bit unsigned integer from the stream.
102
53663be8
VZ
103\func{void}{Read32}{\param{wxUint32 *}{buffer}, \param{size\_t }{size}}
104
105Reads 32 bit unsigned integers from the stream in a specified buffer. the amount of
10632 bit unsigned integer to read is specified by the {\it size} variable.
107
4d1cbdbe
VZ
108\membersection{wxDataInputStream::Read64}
109
110\func{wxUint64}{Read64}{\void}
111
112Reads a 64 bit unsigned integer from the stream.
f6106dae 113
53663be8
VZ
114\func{void}{Read64}{\param{wxUint64 *}{buffer}, \param{size\_t }{size}}
115
116Reads 64 bit unsigned integers from the stream in a specified buffer. the amount of
11764 bit unsigned integer to read is specified by the {\it size} variable.
118
f6106dae
VZ
119\membersection{wxDataInputStream::ReadDouble}
120
121\func{double}{ReadDouble}{\void}
122
123Reads a double (IEEE encoded) from the stream.
124
53663be8
VZ
125\func{void}{ReadDouble}{\param{double *}{buffer}, \param{size\_t }{size}}
126
127Reads double data (IEEE encoded) from the stream in a specified buffer. the amount of
128double to read is specified by the {\it size} variable.
129
a99acbb0 130\membersection{wxDataInputStream::ReadString}\label{wxdatainputstreamreadstring}
f6106dae
VZ
131
132\func{wxString}{ReadString}{\void}
133
a99acbb0
VS
134Reads a string from a stream. Actually, this function first reads a long
135integer specifying the length of the string (without the last null character)
136and then reads the string.
f6106dae 137
a99acbb0
VS
138In Unicode build of wxWindows, the fuction first reads multibyte (char*)
139string from the stream and then converts it to Unicode using the {\it conv}
140object passed to constructor and returns the result as wxString. You are
141responsible for using the same convertor as when writing the stream.
f6106dae 142
a99acbb0 143See also \helpref{wxDataOutputStream::WriteString}{wxdataoutputstreamwritestring}.
0497e172 144