wxUint16 Read16();
wxUint8 Read8();
double ReadDouble();
- wxString ReadLine();
wxString ReadString();
};
void Write16(wxUint16 i);
void Write8(wxUint8 i);
void WriteDouble(double d);
- void WriteLine(const wxString& line);
void WriteString(const wxString& string);
};
char GetC();
virtual wxInputStream& Read(void *buffer, size_t size);
wxInputStream& Read(wxOutputStream& stream_out);
+ wxString ReadLine();
// Position functions
off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart);
virtual wxOutputStream& Write(const void *buffer, size_t size);
wxOutputStream& Write(wxInputStream& stream_in);
+ void WriteLine(const wxString& line);
off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart);
off_t TellO() const;
#endif
}
-wxString wxDataInputStream::ReadLine()
-{
- char c, last_endl = 0;
- bool end_line = FALSE;
- wxString line;
-
- while (!end_line) {
- c = GetC();
- if (LastError() != wxStream_NOERROR)
- break;
-
- switch (c) {
- case '\n':
- end_line = TRUE;
- break;
- case '\r':
- last_endl = '\r';
- break;
- default:
- if (last_endl == '\r') {
- end_line = TRUE;
- InputStreamBuffer()->WriteBack(c);
- break;
- }
- line += c;
- break;
- }
- }
- return line;
-}
-
wxString wxDataInputStream::ReadString()
{
wxString wx_string;
Write(&i, 1);
}
-void wxDataOutputStream::WriteLine(const wxString& line)
-{
-#ifdef __WXMSW__
- wxString tmp_string = line + _T("\r\n");
-#else
- wxString tmp_string = line + _T('\n');
-#endif
-
- Write((const wxChar *) tmp_string, tmp_string.Length()*sizeof(wxChar));
-}
-
void wxDataOutputStream::WriteString(const wxString& string)
{
Write32(string.Length());
return c;
}
+
+wxString wxInputStream::ReadLine()
+{
+ char c, last_endl = 0;
+ bool end_line = FALSE;
+ wxString line;
+
+ while (!end_line) {
+ c = GetC();
+ if (LastError() != wxStream_NOERROR)
+ break;
+
+ switch (c) {
+ case '\n':
+ end_line = TRUE;
+ break;
+ case '\r':
+ last_endl = '\r';
+ break;
+ default:
+ if (last_endl == '\r') {
+ end_line = TRUE;
+ InputStreamBuffer()->WriteBack(c);
+ break;
+ }
+ line += c;
+ break;
+ }
+ }
+ return line;
+}
+
wxInputStream& wxInputStream::Read(void *buffer, size_t size)
{
m_i_streambuf->Read(buffer, size);
wxInputStream& wxInputStream::operator>>(wxString& line)
{
- wxDataInputStream s(*this);
-
- line = s.ReadLine();
+ line = ReadLine();
return *this;
}
m_o_streambuf->FlushBuffer();
}
+void wxOutputStream::WriteLine(const wxString& line)
+{
+#ifdef __WXMSW__
+ wxString tmp_string = line + _T("\r\n");
+#else
+#ifdef __WXMAC__
+ wxString tmp_string = line + _T('\r');
+#else
+ wxString tmp_string = line + _T('\n');
+#endif
+#endif
+
+ Write((const wxChar *) tmp_string, tmp_string.Length()*sizeof(wxChar));
+}
+
wxOutputStream& wxOutputStream::operator<<(const char *string)
{
return Write(string, strlen(string));
{
#ifdef __MSW__
return stream.Write("\r\n", 2);
+#else
+#ifdef __WXMAC__
+ return stream.Write("\r", 1);
#else
return stream.Write("\n", 1);
#endif
+#endif
}
#endif