//////////////////////////////////////////////////////////////// // Technomaint 2004 (c) SofTech di Germinara Francesco 2000,2004 // www.germinara.it info@germinara.it // Story: // //////////////////////////////////////////////////////////////// // Checked Version: 6/5/2004 //////////////////////////////////////////////////////////////// #ifndef CLASS_CFGFile_INCLUDED #define CLASS_CFGFile_INCLUDED #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include"CFGRecord.h" #include "OXParser.h" class CFGFile : public CStdioFile { private: CFileException ex; CString m_strFileName; BOOL m_bInFileOpen; CString m_msgInfo; int m_nRecords; //For XML read only public: CFGRecord *fpRec; //base FGRecord class pointer CFGFile(); void SetRecordExchange(void *fpRecordType){ fpRec = (CFGRecord *)fpRecordType;}; //Set record definition BOOL OpenFile(CString strFileName,BOOL bForWrite=FALSE); //File Name BOOL OpenFileAppend(CString strFileName,BOOL bForWrite); //Open for append BOOL IsOpen(){return m_bInFileOpen;}; //TRUE=File is open void DisplayMsgInfo(CString strMsgInfo);//Display Message Box Info void CloseFile(); int ReadData(int nRecord=-1); //Read data from file: return number of fields for FIXED Record int ReadSeqData(int nRecord); //Read Sequential data from file: return number of fields void WriteData(int nRecord=-1);//Write data to file void WriteSeqData();//Write sequential data to file int GetRecordSize(); //Get Record length int GetRecordsNumber(); //Get Number of Records void AssignRecord(char *rowData); //Set record data directly //XML Implementation COXParser parser; COXParser readParser; COXParserObject *parserObj; COXParserElement *pFileRoot; COXParserElement *pDatiElement; void WriteHeadXML(); //Write XML Header void WriteXML(int nRecord); //Write Data in XML Format BOOL ReadXML(int nRecord); //Read Data in XML Format void CloseXML(); //Close XML parser }; #endif