* Moved ReadLine()/WriteLine() to wxIn/OutputStream

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux
1999-06-30 17:15:32 +00:00
parent f79fd1e54b
commit 1e3eca9d37
4 changed files with 54 additions and 47 deletions

View File

@@ -29,7 +29,6 @@ public:
wxUint16 Read16(); wxUint16 Read16();
wxUint8 Read8(); wxUint8 Read8();
double ReadDouble(); double ReadDouble();
wxString ReadLine();
wxString ReadString(); wxString ReadString();
}; };
@@ -42,7 +41,6 @@ class WXDLLEXPORT wxDataOutputStream: public wxFilterOutputStream {
void Write16(wxUint16 i); void Write16(wxUint16 i);
void Write8(wxUint8 i); void Write8(wxUint8 i);
void WriteDouble(double d); void WriteDouble(double d);
void WriteLine(const wxString& line);
void WriteString(const wxString& string); void WriteString(const wxString& string);
}; };

View File

@@ -161,6 +161,7 @@ class WXDLLEXPORT wxInputStream: public wxStreamBase {
char GetC(); char GetC();
virtual wxInputStream& Read(void *buffer, size_t size); virtual wxInputStream& Read(void *buffer, size_t size);
wxInputStream& Read(wxOutputStream& stream_out); wxInputStream& Read(wxOutputStream& stream_out);
wxString ReadLine();
// Position functions // Position functions
off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart); off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart);
@@ -201,6 +202,7 @@ class WXDLLEXPORT wxOutputStream: public wxStreamBase {
virtual wxOutputStream& Write(const void *buffer, size_t size); virtual wxOutputStream& Write(const void *buffer, size_t size);
wxOutputStream& Write(wxInputStream& stream_in); wxOutputStream& Write(wxInputStream& stream_in);
void WriteLine(const wxString& line);
off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart); off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart);
off_t TellO() const; off_t TellO() const;

View File

@@ -82,37 +82,6 @@ double wxDataInputStream::ReadDouble()
#endif #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 wxDataInputStream::ReadString()
{ {
wxString wx_string; wxString wx_string;
@@ -169,17 +138,6 @@ void wxDataOutputStream::Write8(wxUint8 i)
Write(&i, 1); 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) void wxDataOutputStream::WriteString(const wxString& string)
{ {
Write32(string.Length()); Write32(string.Length());

View File

@@ -549,6 +549,38 @@ char wxInputStream::GetC()
return c; 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) wxInputStream& wxInputStream::Read(void *buffer, size_t size)
{ {
m_i_streambuf->Read(buffer, size); m_i_streambuf->Read(buffer, size);
@@ -592,9 +624,7 @@ off_t wxInputStream::TellI() const
wxInputStream& wxInputStream::operator>>(wxString& line) wxInputStream& wxInputStream::operator>>(wxString& line)
{ {
wxDataInputStream s(*this); line = ReadLine();
line = s.ReadLine();
return *this; return *this;
} }
@@ -802,6 +832,21 @@ void wxOutputStream::Sync()
m_o_streambuf->FlushBuffer(); 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) wxOutputStream& wxOutputStream::operator<<(const char *string)
{ {
return Write(string, strlen(string)); return Write(string, strlen(string));
@@ -922,9 +967,13 @@ wxOutputStream& wxEndL(wxOutputStream& stream)
{ {
#ifdef __MSW__ #ifdef __MSW__
return stream.Write("\r\n", 2); return stream.Write("\r\n", 2);
#else
#ifdef __WXMAC__
return stream.Write("\r", 1);
#else #else
return stream.Write("\n", 1); return stream.Write("\n", 1);
#endif #endif
#endif
} }
#endif #endif