À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   [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·ÎºÎÅÍ »ó¼Ó¹Þ¾Ò´Ù.)


HomePage Backward Forward Post Reply List
1998 by swindler