1 #if !defined(__xiofile_h)
\r
7 class DLL_EXP CxIOFile : public CxFile
\r
10 CxIOFile(FILE* fp = NULL)
\r
13 m_bCloseFile = (bool)(fp==0);
\r
20 //////////////////////////////////////////////////////////
\r
21 bool Open(LPCTSTR filename, LPCTSTR mode)
\r
23 if (m_fp) return false; // Can't re-open without closing first
\r
25 m_fp = _tfopen(filename, mode);
\r
26 if (!m_fp) return false;
\r
28 m_bCloseFile = true;
\r
32 //////////////////////////////////////////////////////////
\r
33 virtual bool Close()
\r
36 if ( (m_fp) && (m_bCloseFile) ){
\r
37 iErr = fclose(m_fp);
\r
40 return (bool)(iErr==0);
\r
42 //////////////////////////////////////////////////////////
\r
43 virtual size_t Read(void *buffer, size_t size, size_t count)
\r
45 if (!m_fp) return 0;
\r
46 return fread(buffer, size, count, m_fp);
\r
48 //////////////////////////////////////////////////////////
\r
49 virtual size_t Write(const void *buffer, size_t size, size_t count)
\r
51 if (!m_fp) return 0;
\r
52 return fwrite(buffer, size, count, m_fp);
\r
54 //////////////////////////////////////////////////////////
\r
55 virtual bool Seek(long offset, int origin)
\r
57 if (!m_fp) return false;
\r
58 return (bool)(fseek(m_fp, offset, origin) == 0);
\r
60 //////////////////////////////////////////////////////////
\r
63 if (!m_fp) return 0;
\r
66 //////////////////////////////////////////////////////////
\r
69 if (!m_fp) return -1;
\r
72 fseek(m_fp, 0, SEEK_END);
\r
74 fseek(m_fp, pos,SEEK_SET);
\r
77 //////////////////////////////////////////////////////////
\r
78 virtual bool Flush()
\r
80 if (!m_fp) return false;
\r
81 return (bool)(fflush(m_fp) == 0);
\r
83 //////////////////////////////////////////////////////////
\r
86 if (!m_fp) return true;
\r
87 return (bool)(feof(m_fp) != 0);
\r
89 //////////////////////////////////////////////////////////
\r
90 virtual long Error()
\r
92 if (!m_fp) return -1;
\r
93 return ferror(m_fp);
\r
95 //////////////////////////////////////////////////////////
\r
96 virtual bool PutC(unsigned char c)
\r
98 if (!m_fp) return false;
\r
99 return (bool)(fputc(c, m_fp) == c);
\r
101 //////////////////////////////////////////////////////////
\r
102 virtual long GetC()
\r
104 if (!m_fp) return EOF;
\r
107 //////////////////////////////////////////////////////////
\r
108 virtual char * GetS(char *string, int n)
\r
110 if (!m_fp) return NULL;
\r
111 return fgets(string,n,m_fp);
\r
113 //////////////////////////////////////////////////////////
\r
114 virtual long Scanf(const char *format, void* output)
\r
116 if (!m_fp) return EOF;
\r
117 return fscanf(m_fp, format, output);
\r
119 //////////////////////////////////////////////////////////
\r