wxTextFile::Close() implemented

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-03-16 18:44:38 +00:00
parent c0c22f7f4f
commit f42d2aba76
2 changed files with 19 additions and 11 deletions

View File

@@ -4,7 +4,7 @@
// (file is fully loaded in memory) and which understands CR/LF // (file is fully loaded in memory) and which understands CR/LF
// differences between platforms. // differences between platforms.
// Author: Vadim Zeitlin // Author: Vadim Zeitlin
// Modified by: // Modified by:
// Created: 03.04.98 // Created: 03.04.98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
@@ -47,7 +47,7 @@ public:
// ctors // ctors
// def ctor, use Open(string) // def ctor, use Open(string)
wxTextFile() { } wxTextFile() { }
// //
wxTextFile(const wxString& strFile); wxTextFile(const wxString& strFile);
// file operations // file operations
@@ -80,7 +80,7 @@ public:
// lines, i.e. you may write something like: // lines, i.e. you may write something like:
// for ( str = GetFirstLine(); !Eof(); str = GetNextLine() ) { ... } // 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) // 'mutable' keyword yet (m_nCurLine should be mutable)
wxString& GetFirstLine() /* const */ { return m_aLines[m_nCurLine = 0]; } wxString& GetFirstLine() /* const */ { return m_aLines[m_nCurLine = 0]; }
wxString& GetNextLine() /* const */ { return m_aLines[++m_nCurLine]; } wxString& GetNextLine() /* const */ { return m_aLines[++m_nCurLine]; }
@@ -98,12 +98,12 @@ public:
// add/remove lines // add/remove lines
// add a line to the end // 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); } { m_aLines.Add(str); m_aTypes.Add(type); }
// insert a line before the line number n // insert a line before the line number n
void InsertLine(const wxString& str, void InsertLine(const wxString& str,
size_t n, size_t n,
wxTextFileType type = typeDefault) wxTextFileType type = typeDefault)
{ m_aLines.Insert(str, n); m_aTypes.Insert(type, n); } { m_aLines.Insert(str, n); m_aTypes.Insert(type, n); }
// delete one line // delete one line
void RemoveLine(size_t n) { m_aLines.Remove(n); m_aTypes.Remove(n); } void RemoveLine(size_t n) { m_aLines.Remove(n); m_aTypes.Remove(n); }

View File

@@ -71,6 +71,7 @@ wxTextFile::~wxTextFile()
bool wxTextFile::Open(const wxString& strFile) bool wxTextFile::Open(const wxString& strFile)
{ {
m_strFile = strFile; m_strFile = strFile;
return Open(); return Open();
} }
@@ -134,13 +135,11 @@ wxTextFileType wxTextFile::GuessType() const
else { else {
#define GREATER_OF(t1, t2) n##t1 == n##t2 ? typeDefault \ #define GREATER_OF(t1, t2) n##t1 == n##t2 ? typeDefault \
: n##t1 > n##t2 \ : n##t1 > n##t2 \
? wxTextFileType_##t1 \ ? wxTextFileType_##t1 \
: wxTextFileType_##t2 : wxTextFileType_##t2
// Watcom C++ doesn't seem to be able to handle the macro // Watcom C++ doesn't seem to be able to handle the macro
#if defined(__WATCOMC__) #if !defined(__WATCOMC__)
return typeDefault;
#else
if ( nDos > nUnix ) if ( nDos > nUnix )
return GREATER_OF(Dos, Mac); return GREATER_OF(Dos, Mac);
else if ( nDos < nUnix ) else if ( nDos < nUnix )
@@ -149,7 +148,7 @@ wxTextFileType wxTextFile::GuessType() const
// nDos == nUnix // nDos == nUnix
return nMac > nDos ? wxTextFileType_Mac : typeDefault; return nMac > nDos ? wxTextFileType_Mac : typeDefault;
} }
#endif #endif // __WATCOMC__
#undef GREATER_OF #undef GREATER_OF
} }
@@ -221,6 +220,15 @@ bool wxTextFile::Read()
return TRUE; return TRUE;
} }
bool wxTextFile::Close()
{
m_aTypes.Clear();
m_aLines.Clear();
m_nCurLine = 0;
return TRUE;
}
bool wxTextFile::Write(wxTextFileType typeNew) bool wxTextFile::Write(wxTextFileType typeNew)
{ {
wxTempFile fileTmp(m_strFile); wxTempFile fileTmp(m_strFile);