#include "wx/datstrm.h"
-#if !USE_SHARED_LIBRARY
-IMPLEMENT_CLASS(wxDataInputStream, wxFilterInputStream)
-IMPLEMENT_CLASS(wxDataOutputStream, wxFilterOutputStream)
-#endif
+// ---------------------------------------------------------------------------
+// wxDataInputStream
+// ---------------------------------------------------------------------------
wxDataInputStream::wxDataInputStream(wxInputStream& s)
: wxFilterInputStream(s)
double wxDataInputStream::ReadDouble()
{
-#if USE_APPLE_IEEE
+#if wxUSE_APPLE_IEEE
char buf[10];
Read(buf, 10);
wxString wxDataInputStream::ReadLine()
{
- char i_strg[255];
-
- // TODO: Implement ReadLine
- return i_strg;
+ char c, last_endl = 0;
+ bool end_line = FALSE;
+ wxString line;
+
+ while (!end_line) {
+ c = GetC();
+ 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()
wx_string = string;
delete string;
- return wx_string;
+ return wx_string;
}
+// ---------------------------------------------------------------------------
+// wxDataOutputStream
+// ---------------------------------------------------------------------------
+
wxDataOutputStream::wxDataOutputStream(wxOutputStream& s)
: wxFilterOutputStream(s)
{
void wxDataOutputStream::WriteLine(const wxString& line)
{
#ifdef __WXMSW__
- wxString tmp_string = line + "\r\n";
+ wxString tmp_string = line + _T("\r\n");
#else
- wxString tmp_string = line + '\n';
+ wxString tmp_string = line + _T('\n');
#endif
- Write((const char *) tmp_string, tmp_string.Length());
+ Write((const wxChar *) tmp_string, tmp_string.Length()*sizeof(wxChar));
}
void wxDataOutputStream::WriteString(const wxString& string)
{
Write32(string.Length());
- Write((const char *) string, string.Length());
+ Write((const wxChar *) string, string.Length()*sizeof(wxChar));
}
// Must be at global scope for VC++ 5
{
char buf[10];
-#if USE_APPLE_IEEE
+#if wxUSE_APPLE_IEEE
ConvertToIeeeExtended(d, (unsigned char *)buf);
#else
-# pragma warning "wxDataStream::WriteDouble() not using IeeeExtended - will not work!"
+# pragma warning "wxDataOutputStream::WriteDouble() not using IeeeExtended - will not work!"
buf[0] = '\0';
#endif
Write(buf, 10);