// (file is fully loaded in memory) and which understands CR/LF
// differences between platforms.
// Author: Vadim Zeitlin
-// Modified by:
+// Modified by:
// Created: 03.04.98
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// ctors
// def ctor, use Open(string)
wxTextFile() { }
- //
+ //
wxTextFile(const wxString& strFile);
// file operations
// lines, i.e. you may write something like:
// for ( str = GetFirstLine(); !Eof(); str = GetNextLine() ) { ... }
- // @@@ const is commented out because not all compilers understand
+ // NB: const is commented out because not all compilers understand
// 'mutable' keyword yet (m_nCurLine should be mutable)
wxString& GetFirstLine() /* const */ { return m_aLines[m_nCurLine = 0]; }
wxString& GetNextLine() /* const */ { return m_aLines[++m_nCurLine]; }
// add/remove lines
// add a line to the end
- void AddLine(const wxString& str, wxTextFileType type = typeDefault)
+ void AddLine(const wxString& str, wxTextFileType type = typeDefault)
{ m_aLines.Add(str); m_aTypes.Add(type); }
// insert a line before the line number n
void InsertLine(const wxString& str,
size_t n,
- wxTextFileType type = typeDefault)
+ wxTextFileType type = typeDefault)
{ m_aLines.Insert(str, n); m_aTypes.Insert(type, n); }
// delete one line
void RemoveLine(size_t n) { m_aLines.Remove(n); m_aTypes.Remove(n); }
bool wxTextFile::Open(const wxString& strFile)
{
m_strFile = strFile;
+
return Open();
}
else {
#define GREATER_OF(t1, t2) n##t1 == n##t2 ? typeDefault \
: n##t1 > n##t2 \
- ? wxTextFileType_##t1 \
+ ? wxTextFileType_##t1 \
: wxTextFileType_##t2
-// Watcom C++ doesn't seem to be able to handle the macro
-#if defined(__WATCOMC__)
- return typeDefault;
-#else
+ // Watcom C++ doesn't seem to be able to handle the macro
+#if !defined(__WATCOMC__)
if ( nDos > nUnix )
return GREATER_OF(Dos, Mac);
else if ( nDos < nUnix )
// nDos == nUnix
return nMac > nDos ? wxTextFileType_Mac : typeDefault;
}
-#endif
+#endif // __WATCOMC__
#undef GREATER_OF
}
return TRUE;
}
+bool wxTextFile::Close()
+{
+ m_aTypes.Clear();
+ m_aLines.Clear();
+ m_nCurLine = 0;
+
+ return TRUE;
+}
+
bool wxTextFile::Write(wxTextFileType typeNew)
{
wxTempFile fileTmp(m_strFile);