% ----------------------------------------------------------------------------
% wxTextInputStream
% ----------------------------------------------------------------------------
\section{\class{wxTextInputStream}}\label{wxtextinputstream}

This class provides functions that read text datas using an input stream.
So, you can read {\it text} floats, integers.

The wxTextInputStream correctly reads text files (or streams) in DOS, Macintosh
and Unix formats and reports a single newline char as a line ending.

Operator >> is overloaded and you can use this class like a standard C++ iostream.
Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc
and on a typical 32-bit computer, none of these match to the "long" type (wxInt32
is defined as int on 32-bit architectures) so that you cannot use long. To avoid
problems (here and elsewhere), make use of wxInt32, wxUint32 and similar types.

For example:

\begin{verbatim}
  wxFileInputStream input( "mytext.txt" );
  wxTextInputStream text( input );
  wxUint8 i1;
  float f2;
  wxString line;

  text >> i1;       // read a 8 bit integer.
  text >> i1 >> f2; // read a 8 bit integer followed by float.
  text >> line;     // read a text line
\end{verbatim}

\wxheading{Include files}

<wx/txtstrm.h>

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxTextInputStream::wxTextInputStream}\label{wxtextinputstreamconstr}

\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}}

\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}, \param{wxMBConv\&}{ conv = wxMBConvUTF8}}

Constructs a text stream object from an input stream. Only read methods will
be available. The second form is available only in Unicode mode and lets
you set the encoding of the text.

\wxheading{Parameters}

\docparam{stream}{The input stream.}

\membersection{wxTextInputStream::\destruct{wxTextInputStream}}

\func{}{\destruct{wxTextInputStream}}{\void}

Destroys the wxTextInputStream object.

\membersection{wxTextInputStream::Read8}

\func{wxUint8}{Read8}{\void}

Reads a single byte from the stream.

\membersection{wxTextInputStream::Read16}

\func{wxUint16}{Read16}{\void}

Reads a 16 bit integer from the stream.

\membersection{wxTextInputStream::Read32}

\func{wxUint32}{Read32}{\void}

Reads a 32 bit integer from the stream.

\membersection{wxTextInputStream::ReadDouble}

\func{double}{ReadDouble}{\void}

Reads a double (IEEE encoded) from the stream.

\membersection{wxTextInputStream::ReadLine}\label{wxtextinputstreamreadline}

\func{wxString}{wxTextInputStream::ReadLine}{\void}

Reads a line from the input stream and returns it (without the end of line
character).

\membersection{wxTextInputStream::ReadString}

\func{wxString}{wxTextInputStream::ReadString}{\void}

{\bf NB:} This method is deprecated, use \helpref{ReadLine}{wxtextinputstreamreadline} 
or \helpref{ReadWord}{wxtextinputstreamreadword} instead.

Same as \helpref{ReadLine}{wxtextinputstreamreadline}.

\membersection{wxTextInputStream::ReadWord}\label{wxtextinputstreamreadword}

\func{wxString}{wxTextInputStream::ReadWord}{\void}

Reads a word (a sequence of characters until the next separator) from the
input stream.

\wxheading{See also}

\helpref{SetStringSeparators}{wxtextinputstreamsetstringseparators}

\membersection{wxTextInputStream::SetStringSeparators}\label{wxtextinputstreamsetstringseparators}

\func{void}{SetStringSeparators}{\param{const wxString\& }{sep}}

Sets the characters which are used to define the word boundaries in 
\helpref{ReadWord}{wxtextinputstreamreadword}.

The default separators are the space and {\tt TAB} characters.

% ----------------------------------------------------------------------------
% wxTextOutputStream
% ----------------------------------------------------------------------------

\section{\class{wxTextOutputStream}}\label{wxtextoutputstream}

This class provides functions that write text datas using an output stream.
So, you can write {\it text} floats, integers.

You can also simulate the C++ cout class:

\begin{verbatim}
  wxFFileOutputStream output( stderr );
  wxTextOutputStream cout( output );

  cout << "This is a text line" << endl;
  cout << 1234;
  cout << 1.23456;
\end{verbatim}

The wxTextOutputStream writes text files (or streams) on DOS, Macintosh
and Unix in their native formats (concerning the line ending).

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxTextOutputStream::wxTextOutputStream}\label{wxtextoutputstreamconstr}

\func{}{wxTextOutputStream}{\param{wxOutputStream\&}{ stream}, \param{wxEOL}{ mode = wxEOL\_NATIVE}, \param{wxMBConv\&}{ conv = wxMBConvUTF8}}

Constructs a text stream object from an output stream. Only write methods will
be available. The second form is only available in Unicode mode.
\wxheading{Parameters}

\docparam{stream}{The output stream.}

\docparam{mode}{The end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.}

\membersection{wxTextOutputStream::\destruct{wxTextOutputStream}}

\func{}{\destruct{wxTextOutputStream}}{\void}

Destroys the wxTextOutputStream object.

\membersection{wxTextOutputStream::GetMode}

\func{wxEOL}{wxTextOutputStream::GetMode}{\void}

Returns the end-of-line mode. One of {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.

\membersection{wxTextOutputStream::SetMode}

\func{void}{wxTextOutputStream::SetMode}{{\param wxEOL}{ mode = wxEOL\_NATIVE}}

Set the end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.

\membersection{wxTextOutputStream::Write8}

\func{void}{wxTextOutputStream::Write8}{{\param wxUint8 }{i8}}

Writes the single byte {\it i8} to the stream.

\membersection{wxTextOutputStream::Write16}

\func{void}{wxTextOutputStream::Write16}{{\param wxUint16 }{i16}}

Writes the 16 bit integer {\it i16} to the stream.

\membersection{wxTextOutputStream::Write32}

\func{void}{wxTextOutputStream::Write32}{{\param wxUint32 }{i32}}

Writes the 32 bit integer {\it i32} to the stream.

\membersection{wxTextOutputStream::WriteDouble}

\func{virtual void}{wxTextOutputStream::WriteDouble}{{\param double }{f}}

Writes the double {\it f} to the stream using the IEEE format.

\membersection{wxTextOutputStream::WriteString}

\func{virtual void}{wxTextOutputStream::WriteString}{{\param const wxString\& }{string}}

Writes {\it string} as a line. Depending on the end-of-line mode, it adds 
$\backslash$n, $\backslash$r or $\backslash$r$\backslash$n.

