/******************************************************************
* Function Name | WriteFile(CString strFilePath, CString strWrite)
* Details | 특정 경로에 데이터를 저장
* Programmer | 김 경 환
* Parameter |
* Return Value | CString strFilePath, CString strWrite
*******************************************************************/
BOOL ToolDBHandler::WriteFile(CString strFilePath, CString strWrite)
{
ofstream outfile;
char* pszWrite;
pszWrite = CStringToChar(strWrite);
outfile.open(CStringToChar(strFilePath), ios::trunc); //기존 파일을 삭제하고 다시 만듬
if(!outfile.is_open()){
return FALSE;
}
outfile.write(pszWrite, strWrite.GetLength());
outfile.close();
delete pszWrite;
return TRUE;
}
/******************************************************************
* Function Name | ReadFile(CString strFilePath)
* Details | 특정 경로의 데이터를 읽어들임
* Programmer | 김 경 환
* Parameter | CString strFilePath
* Return Value | 읽어들인 데이터를 CString으로 반환
*******************************************************************/
CString ToolDBHandler::ReadFile(CString strFilePath)
{
CString strRead;
char* pszRead;
ifstream infile;
int length;
infile.open(CStringToChar(strFilePath)); //해당 DB file open
if(!infile.is_open())
{
CString e_str;
e_str = L"Can not open the " + strFilePath;
return e_str;
}
length = GetFileLength(&infile); //DB파일의 길이를 가져옴
pszRead = new char[length+1];
infile.read(pszRead, length); //DB를 읽어옴
infile.close();
char* strTemp = ReplaceNULL(pszRead, length); //DB에 포함된 NULL문자를 제거
strTemp[length] = NULL;
strRead = CharToCString(strTemp); //char* -> CString
delete pszRead;
return strRead;
}
/******************************************************************
* Function Name | GetFileLength(ifstream *file)
* Details | 파일의 길이를 구해서 반환
* Programmer | 김 경 환
* Parameter | ifstream *file
* Return Value | 파일 길이
*******************************************************************/
int ToolDBHandler::GetFileLength(ifstream *file)
{
int length;
file->seekg(0, ios::end); //파일 읽기 처음에서 끝 위치로 Set
length = file->tellg(); //파일 길이값 Get
file->seekg(0, ios::beg); //파일 읽기 처음 위치로 Set
return length;
}
'old drawer > C, C++, MFC' 카테고리의 다른 글
[MFC] 유니코드 사용하기 (0) | 2014.01.09 |
---|---|
[MFC] Window 창 크기 조정 (1) | 2014.01.08 |
[C/C++] 중구난방 스터디 요약 (0) | 2013.12.12 |
[Effective C++ 요약] 11. operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자. (0) | 2013.12.12 |
[Effective C++ 요약] #7 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하라. (0) | 2013.12.02 |