천객만래 [千客萬來] (It has an interminable succession of visitors)


파일쓰기 예제

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

 

Posted by SB패밀리



파일을 열고 닫기
 
HANDLE hFile;
hFile = CreateFile("File.txt", GENERIC_READ | GENERIC_WRITE,
         FILE_SHARED_READ, NULL, OPEN_ALWAYS,
         FILE_ATTRIBUTE_NORMAL, NULL);
 
if(hFile != INVALID_HANDLE_VALUE)
{
     //파일을 사용한다.
 
     //파일을 닫는다.
     CloseHandle(hFile);
}


파일을 읽거나 쓰기
 
HANDLE hFile;
hFile = CreateFile("File.txt", GENERIC_READ | GENERIC_WRITE,
         FILE_SHARED_READ, NULL, OPEN_ALWAYS,
         FILE_ATTRIBUTE_NORMAL, NULL);
 
if(hFile != INVALID_HANDLE_VALUE)
{
     DWORD dwActBytes;
     char szBuf[128];
 
     //''This is a sample" 문자열을 파일에 쓴다.
     WriteFile(hFile, "This is a sample", 17, &dwActBytes, NULL);
 
     //파일 포인터를 파일의 시작 위치로 옮긴다.
     SetFilePointer(hFile, 0, 0, FILE_BEGIN);
 
     //파일로부터 문자열을 읽어온다.
     ReadFile(hFile, szBuf, 128, &dwActBytes, NULL);
 
     //NULL로 끝나는 문자열.
     szBuf[dwActBytes] = 0;
     //파일을 닫는다.
     CloseHandle(hFile);
}

 

Posted by SB패밀리