SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입] = 참고 = || MFC 파일 스트림 || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring.asp] || || 파일복사 프로그램 || [http://blog.naver.com/kds6221.do?Redirect=Log&logNo=140013999545] || || 파일입출력 예제 || [http://blog.naver.com/popo1008.do?Redirect=Log&logNo=20008968622] || || memDC -> bitmap || [http://blog.naver.com/zenix4078.do?Redirect=Log&logNo=11507823] || = 대략적인 CFile = '''Data Members''' || m_hFile || Usually contains the operating-system file handle. || '''Construction''' || CFile || Constructs a CFile object from a path or file handle. || || Abort || Closes a file ignoring all warnings and errors. || || Duplicate || Constructs a duplicate object based on this file. || || Open || Safely opens a file with an error-testing option. || || Close || Closes a file and deletes the object. || '''Input/Output''' || Read || Reads (unbuffered) data from a file at the current file position. || || ReadHuge || Can read more than 64K of (unbuffered) data from a file at the current file position. Obsolete in 32-bit programming. See Read. || || Write || Writes (unbuffered) data in a file to the current file position. || || WriteHuge || Can write more than 64K of (unbuffered) data in a file to the current file position. Obsolete in 32-bit programming. See Write. || || Flush || Flushes any data yet to be written. || '''Position''' || Seek || Positions the current file pointer. || || SeekToBegin || Positions the current file pointer at the beginning of the file. || || SeekToEnd || Positions the current file pointer at the end of the file. || || GetLength || Retrieves the length of the file. || || SetLength || Changes the length of the file. || '''Locking''' || LockRange || Locks a range of bytes in a file. || || UnlockRange || Unlocks a range of bytes in a file. || '''Status''' || GetPosition || Retrieves the current file pointer. || || GetStatus || Retrieves the status of this open file. || || GetFileName || Retrieves the filename of the selected file. || || GetFileTitle || Retrieves the title of the selected file. || || GetFilePath || Retrieves the full file path of the selected file. || || SetFilePath || Sets the full file path of the selected file. || '''Static''' || Rename || Renames the specified file (static function). || || Remove || Deletes the specified file (static function). || || GetStatus || Retrieves the status of the specified file (static, virtual function). || || SetStatus || Sets the status of the specified file (static, virtual function). || = CFile Prototype = 전화받아라 이승한-_- {{{#include "stdafx.h" #include "FileioView.h" void CFileioView::OnWritefile() { CFile Wfile; if(!Wfile.Open("TestFile.txt", CFile::modeCreate | CFile::modeWrite)) { ::MessageBox(NULL, "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(!Rfile.Open("TestFile.txt", CFile::modeRead)) { ::MessageBox(NULL, "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(); CPaintDC dc(this); dc.TextOut(0,0,ps,lstrlen(ps)); delete ps; } }}} 파일 입출력 부분에 의해 "TestFile.txt"라는 파일을 만들고, CFile 클래스 내의 Write() 함수를 이용해서 'A' ~ 'Z' 까지 써 넣는 함수 (OnWriteFile())와, 파일에 쓰여진 'A' ~ 'Z'까지 불러들여서 화면에 출력하는 함수 (OnReadFile()) 함수이다. 우선 기본적으로 레밍즈에서 맵을 제작하게 되면 맵을 저장하기 위해서 위의 OnWriteFile()에서 쓰여진 Open() 함수와 Write() 함수를 쓰게 될것 같다. 그리고 레밍즈 게임을 실행하게 되면 그 맵이 불려져야 하므로, 기본적인 Read() 함수도 사용할 것 같다. 그러나 실제 레밍즈 게임에서는 txt 파일 형식이 아니라 bitmap 형식으로의 저장과 읽기가 가능해야 하므로, 가상화면을 생성하고, 가상화면에 그린것을 화면으로 복사하고 , 가상화면을 지우는 작업등이 추가 되어야 한다. 그 나머지 과정은 일반적인 작업 내용은 거의 동일하므로 기본적인 CFile 부분을 숙지해야 할 것 같다.