-#if !defined(__xiofile_h)\r
-#define __xiofile_h\r
-\r
-#include "xfile.h"\r
-//#include <TCHAR.h>\r
-\r
-class DLL_EXP CxIOFile : public CxFile\r
- {\r
-public:\r
- CxIOFile(FILE* fp = NULL)\r
- {\r
- m_fp = fp;\r
- m_bCloseFile = (bool)(fp==0);\r
- }\r
-\r
- ~CxIOFile()\r
- {\r
- Close();\r
- }\r
-//////////////////////////////////////////////////////////\r
- bool Open(LPCTSTR filename, LPCTSTR mode)\r
- {\r
- if (m_fp) return false; // Can't re-open without closing first\r
-\r
- m_fp = _tfopen(filename, mode);\r
- if (!m_fp) return false;\r
-\r
- m_bCloseFile = true;\r
-\r
- return true;\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual bool Close()\r
- {\r
- int iErr = 0;\r
- if ( (m_fp) && (m_bCloseFile) ){ \r
- iErr = fclose(m_fp);\r
- m_fp = NULL;\r
- }\r
- return (bool)(iErr==0);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual size_t Read(void *buffer, size_t size, size_t count)\r
- {\r
- if (!m_fp) return 0;\r
- return fread(buffer, size, count, m_fp);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual size_t Write(const void *buffer, size_t size, size_t count)\r
- {\r
- if (!m_fp) return 0;\r
- return fwrite(buffer, size, count, m_fp);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual bool Seek(long offset, int origin)\r
- {\r
- if (!m_fp) return false;\r
- return (bool)(fseek(m_fp, offset, origin) == 0);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual long Tell()\r
- {\r
- if (!m_fp) return 0;\r
- return ftell(m_fp);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual long Size()\r
- {\r
- if (!m_fp) return -1;\r
- long pos,size;\r
- pos = ftell(m_fp);\r
- fseek(m_fp, 0, SEEK_END);\r
- size = ftell(m_fp);\r
- fseek(m_fp, pos,SEEK_SET);\r
- return size;\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual bool Flush()\r
- {\r
- if (!m_fp) return false;\r
- return (bool)(fflush(m_fp) == 0);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual bool Eof()\r
- {\r
- if (!m_fp) return true;\r
- return (bool)(feof(m_fp) != 0);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual long Error()\r
- {\r
- if (!m_fp) return -1;\r
- return ferror(m_fp);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual bool PutC(unsigned char c)\r
- {\r
- if (!m_fp) return false;\r
- return (bool)(fputc(c, m_fp) == c);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual long GetC()\r
- {\r
- if (!m_fp) return EOF;\r
- return getc(m_fp);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual char * GetS(char *string, int n)\r
- {\r
- if (!m_fp) return NULL;\r
- return fgets(string,n,m_fp);\r
- }\r
-//////////////////////////////////////////////////////////\r
- virtual long Scanf(const char *format, void* output)\r
- {\r
- if (!m_fp) return EOF;\r
- return fscanf(m_fp, format, output);\r
- }\r
-//////////////////////////////////////////////////////////\r
-protected:\r
- FILE *m_fp;\r
- bool m_bCloseFile;\r
- };\r
-\r
-#endif\r
+#if !defined(__xiofile_h)
+#define __xiofile_h
+
+#include "xfile.h"
+//#include <TCHAR.h>
+
+class DLL_EXP CxIOFile : public CxFile
+ {
+public:
+ CxIOFile(FILE* fp = NULL)
+ {
+ m_fp = fp;
+ m_bCloseFile = (bool)(fp==0);
+ }
+
+ ~CxIOFile()
+ {
+ Close();
+ }
+//////////////////////////////////////////////////////////
+ bool Open(LPCTSTR filename, LPCTSTR mode)
+ {
+ if (m_fp) return false; // Can't re-open without closing first
+
+ m_fp = _tfopen(filename, mode);
+ if (!m_fp) return false;
+
+ m_bCloseFile = true;
+
+ return true;
+ }
+//////////////////////////////////////////////////////////
+ virtual bool Close()
+ {
+ int iErr = 0;
+ if ( (m_fp) && (m_bCloseFile) ){
+ iErr = fclose(m_fp);
+ m_fp = NULL;
+ }
+ return (bool)(iErr==0);
+ }
+//////////////////////////////////////////////////////////
+ virtual size_t Read(void *buffer, size_t size, size_t count)
+ {
+ if (!m_fp) return 0;
+ return fread(buffer, size, count, m_fp);
+ }
+//////////////////////////////////////////////////////////
+ virtual size_t Write(const void *buffer, size_t size, size_t count)
+ {
+ if (!m_fp) return 0;
+ return fwrite(buffer, size, count, m_fp);
+ }
+//////////////////////////////////////////////////////////
+ virtual bool Seek(long offset, int origin)
+ {
+ if (!m_fp) return false;
+ return (bool)(fseek(m_fp, offset, origin) == 0);
+ }
+//////////////////////////////////////////////////////////
+ virtual long Tell()
+ {
+ if (!m_fp) return 0;
+ return ftell(m_fp);
+ }
+//////////////////////////////////////////////////////////
+ virtual long Size()
+ {
+ if (!m_fp) return -1;
+ long pos,size;
+ pos = ftell(m_fp);
+ fseek(m_fp, 0, SEEK_END);
+ size = ftell(m_fp);
+ fseek(m_fp, pos,SEEK_SET);
+ return size;
+ }
+//////////////////////////////////////////////////////////
+ virtual bool Flush()
+ {
+ if (!m_fp) return false;
+ return (bool)(fflush(m_fp) == 0);
+ }
+//////////////////////////////////////////////////////////
+ virtual bool Eof()
+ {
+ if (!m_fp) return true;
+ return (bool)(feof(m_fp) != 0);
+ }
+//////////////////////////////////////////////////////////
+ virtual long Error()
+ {
+ if (!m_fp) return -1;
+ return ferror(m_fp);
+ }
+//////////////////////////////////////////////////////////
+ virtual bool PutC(unsigned char c)
+ {
+ if (!m_fp) return false;
+ return (bool)(fputc(c, m_fp) == c);
+ }
+//////////////////////////////////////////////////////////
+ virtual long GetC()
+ {
+ if (!m_fp) return EOF;
+ return getc(m_fp);
+ }
+//////////////////////////////////////////////////////////
+ virtual char * GetS(char *string, int n)
+ {
+ if (!m_fp) return NULL;
+ return fgets(string,n,m_fp);
+ }
+//////////////////////////////////////////////////////////
+ virtual long Scanf(const char *format, void* output)
+ {
+ if (!m_fp) return EOF;
+ return fscanf(m_fp, format, output);
+ }
+//////////////////////////////////////////////////////////
+protected:
+ FILE *m_fp;
+ bool m_bCloseFile;
+ };
+
+#endif