À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á |
---|
Á¦¸ñ | [MFC] File ó¸® 1998/07/28 (10:32) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 41 |
Á¶È¸ | 405 |
º»¹® |
<< MFC¿¡¼ÀÇ ÆÄÀÏ ¾×¼¼½º¿Í Á÷·ÄÈ >> Document/View ±¸Á¶¿¡¼´Â µµÅ¥¸ÕÆ®¸¦ ÀúÀåÇϰųª ·ÎµåÇÒ¶§ Á÷·Äȸ¦ »ç¿ëÇϴµ¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ µµÅ¥¸ÕÆ® Ŭ·¡½º¿Í ¿¬°áµÈ MFC FrameWork°¡ CArchive ¿ÀºêÁ§Æ®¸¦ ¸¸µé¾î¼ µµÅ¥¸ÕÆ®¸¦ ÀúÀåÇϰųª ·ÎµåÇÑ´Ù. (Document Data)-(Serialize)-(CArchive)-(CFile)-(Real File) 1. Serialize() Function Serialize()ÇÔ¼ö´Â File¸Þ´º¿¡¼ Save, Save as, OpenÀ» ¼±ÅÃÇßÀ»¶§ ÀÚµ¿ÀûÀ¸·Î È£ÃâµÇ´Â ÇÔ¼öÀÌ´Ù. void CStringView::Serialize(CArchive& ar) { if (ar.IsStoring()) { // storing code ar<<m_PosX; ar<<m_PosY; } else { // loading code ar>>m_PosX; ar>>m_PosY; } } arÀº ¼±ÅÃÇÑ ÆÄÀÏ¿¡ ÇØ´çµÇ´Â ÀúÀå ÆÄÀÏ °´Ã¼ÀÌ´Ù.(CArchive Class). µû¶ó¼, À§ÀÇ °æ¿ì¿¡ Save, Save as, Open¿¡¼ ÁöÁ¤ÇÑ ÈÀÏÀ» ´ë»óÀ¸·Î ÀÛ¾÷À» ÇÏ°Ô µÈ´Ù. 2. Save UpdateData(TRUE); // ȸ鿡 ÀÖ´Â ³»¿ëÀ» º¯¼ö¸í¿¡ ÀúÀå CFile f; f.Open("C:\\Try.dat", CFile::modeCreate | CFile::modeWrite); CArchive ar(&f, CArchive::store); ar<<m_Var1Edit<<m_Var2Edit; ar.Close(); f.Close(); 3. Load CFile f; if(f.Open("c:\\Try.dat", CFile::modeRead)==FALSE) return ; CArchive ar(&f, CArchive::load); ar>>m_Var1Edit>>m_Var2Edit; ar.Close(); f.Close(); UpdateData(FALSE); // º¯¼ö¿¡ ÀúÀåµÈ °ªÀ» ȸ鿡 ³ªÅ¸³¿ << ÆÄÀÏÀ» Á÷Á¢ ´Ù·ç±â >> MFC°¡ Á¦¾îÇÏ´Â Serialize¸¦ ÀÌ¿äÇÑ ¹æ¹ý¿Ü¿¡, ÆÄÀÏÀ» ¸·¹Ù·Î ¿ÀÇÂÇÏ°í, Àаųª ¾²´Â ÀÛ¾÷À» ÇÏ´Â °ÍÀÌ´Ù. MFC¿¡¼´Â ÆÄÀÏÀÇ ÀÔÃâ·Â¿¡ °üÇÑ ÀÛ¾÷À» Áö¿øÇϱâ À§ÇÏ¿© ÆÄÀÏ¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÏ´Â ÇÔ¼öµéÀ» ¸ð¾Æ¼ ÇϳªÀÇ Å¬·¡½º·Î ¸¸µé¾ú´Ù. ÀÌ°ÍÀÌ ¹Ù·Î CFile ClassÀÌ´Ù. void CArchDlg::OnSaveButton() { CFile f; UpdateData(TRUE); f.Open("c:\\test.dat",CFile::modeCreate | CFile::modeWrite); f.Write(m_Var1Edit,m_Var1Edit.GetLength()); f.Close(); } void CArchDlg::OnLoadBtton() { CFile f; char pBuf[100]; char *pFileName="c:\\config.sys"; f.Open(pFileName,CFile::modeRead); f.Read(pBuf,100); f.Close(); m_Var1Edit.Format("%s",pBuf); UpdateData(FALSE); } CFile Class Member Function virtual void Abort() : ÀÛ¾÷Áß¿¡ °æ°í³ª ¿¡·¯°¡ »ý±ä ÈÀÏÀ» Á¾·áÇÏ°í ´Ý´Â´Ù. CFile() : Create CFile Object virtual void Close() : ÆÄÀÏÀ» ´Ý°í ¿ÀºêÁ§Æ®¸¦ »èÁ¦ÇÑ´Ù. virtual CFile* Duplicate() : ÀÌ ÆÄÀÏÀ» ±âº»À¸·Î ÇÑ ´Ù¸¥ ÆÄÀÏ ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÑ´Ù. virtual void Flush() : file buffer¿¡ ³²Àº data¸¦ ÀúÀåÇÑ´Ù. virtual CString GetFileName() : ÆÄÀÏÀÇ À̸§À» ¾ò´Â´Ù. (µð·ºÅ丮¸íÀ» Á¦¿ÜÇÑ.) virtual CString GetFilePath() : ÆÄÀÏÀÇ Path¸¦ ¾ò´Â´Ù. virtual CString GetFileTitle() : ÆÄÀÏÀÇ title(ÆÄÀÏ¸í¿¡¼ È®ÀåÀÚ¸¦ »«) ¾ò´Â´Ù. virtual DWORD GetLength() virtual DWORD GetPosition() : get file pointer as a 32-bit doubleword BOOL GetStatus(CFileStatus &) CFileStatus { CTime m_ctime : »ý¼ºµÈ ³¯Â¥¿Í ½Ã°£ CTime m_mtime : last modifiedµÈ ³¯Â¥¿Í ½Ã°£ CTime m_atime : last accessed for reading ³¯Â¥¿Í ½Ã°£ LONG m_size : The logican size of the file in bytes BYTE m_attribute char m_szFullName[_MAX_PATH] : the absolute filename } enum m_attribute{ normal = 0x00, readOnly = 0x01, hidden = 0x02, system = 0x04, volume = 0x08, directory = 0x10, archive = 0x20 } virtual void LockRange(DWORD dwPos, DWORD dwCount) : ÁöÁ¤ÇÑ À§Ä¡¿¡¼ ¹ÙÀÌÆ® ¼ö¸¸ÅÀÇ ¹üÀ§¿¡ ÀÖ´Â data¸¦ º¸È£ virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags) : return nonzero if the open was successful virtual UINT Read(void *lpBuf, UINT nCount) DWORD ReadHuge(void *lpBuffer, DWORD dwCount) static void PASCAL Remove(LPCTSTR lpszFileName) static void PASCAL Rename(LPCTSTR lpszOldName, LPCTSTR lpszNewName) virtual LONG Seek(LONG lOff, UINT nFrom) : ÇöÀç ÆÄÀÏ Æ÷ÀÎÅ͸¦ ÁöÁ¤ÇÑ À§Ä¡·Î ¿Å±ä´Ù. UINT nFrom{ CFile::begin CFile::current CFile::end } void SeekToBegin() : ÆÄÀÏÀÇ ¸Ç ¾ÕÀ¸·Î Æ÷ÀÎÅ͸¦ ¿Å±è DWORD SeekToEnd() : Return length of the file in bytes virtual void SetFilePath(LPCTSTR lpszNewName) virtual void SetLength(DWORD dwNewLen) : Change the length of the file. static void SetStatus(LPCTSTR lpszFileName, const CFileStatus &status) virtual void UnlockRange(DWORD dwPos, DWORD dwCount) virual void Write(const void *lpBuf, UINT nCount) void WriteHuge(const void *lpBuf, DWORD dwCount) CFile Data Member CFile::m_hFile CFile Class·ÎºÎÅÍ »ó¼Ó¹ÞÀº Ŭ·¡½º´Â CStudioFile, CMemFile, CSharedFileµîÀÌ ÀÖ´Ù. (CSharedFileÀº CMemFile·ÎºÎÅÍ »ó¼Ó¹Þ¾Ò´Ù.) |