본문 바로가기
IT-개발,DB

[개발/MFC] 파일 쓰기, 파일 읽기, 파일 위치 찾기, 예외처리

by SB리치퍼슨 2011. 8. 17.


파일쓰기 예제

void CFileioView::OnWritefile()
{
    CFile Wfile;
    if(!Wfile.Open("TestFile.txt", CFile::modeCreate |
                     CFile::modeWrite))
    {
        MessageBox("Can't Create testfile.txt !", "Warning",
                        MB_OK | MB_ICONHAND);
        return;
    }
    char* ps = new char[27];
    char* ps2 = ps;
    for(int i=0;i<26;i++)
        *ps2++ = 'A'+i;
    *ps2 = NULL;    // NULL 문자로 끝나게 한다.
    Wfile.Write(ps,27);
    Wfile.Close();
    delete ps;
}
 
파일읽기 예제
 
void CFileioView::OnReadfile()
{
    CFile Rfile;
    if(!Wfile.Open("TestFile.txt", CFile::modeRead))
    {
        MessageBox("Can't Open testfile.txt !", "Warning",
                        MB_OK | MB_ICONHAND);
        return;
    }
    UINT FileLength = (UINT)Rfile.GetLength();
    char* ps = new char[FileLength];
    Rfile.Read(ps,FileLength);
    Rfile.Close();
 
    CClientDC dc(this);
    dc.TextOut(0,0,ps,lstrlen(ps));
    delete ps;
}

랜덤 파일 처리 예제
 
void CFileioView::OnAddfile()
{
    CFile Afile;
    if(!Afile.Open("TestFile.txt", CFile::modeRead |
                     CFile::modeWrite))
    {
        MessageBox("Can't Create testfile.txt !", "Warning",
                        MB_OK | MB_ICONHAND);
        return;
    }
    Afile.Seek(-1,CFile::end);
    ~~~~~~~~~~~~~
    char* ps = new char[27];
    char* ps2 = ps;
    for(int i=0;i><26;i++)
        *ps2++ = 'a'+i;
    *ps2 = NULL;    // NULL 문자로 끝나게 한다.
    Wfile.Write(ps,27);
    Wfile.Close();
 
    delete ps;
}

파일 예외처리

extern char* pFileName;
     TRY
     {
          CFile f(pFileName, CFile::modeCreate | CFile::modeWrite);
     }
     CATCH(CFileException, e)
     {
          switch(e->m_cause)
          {
               case CFileException::fileNotFound :
 
                    MessageBox("File not found");
                    break;
               case CFileException::diskFull :
 
                    MessageBox("Disk is full");
                    break;
                    :
                    :
          }
     }
     END_CATCH

 

반응형

댓글