코드 조각

TStringGrid 내용을 CSV 파일로 저장하는 함수

ictlab 2012. 3. 21. 12:48
  

//---------------------------------------------------------------------------
/*
@brief : StringGrid 콤포넌트의 내용을CSV 포맷으로 파일에 저장
@remarks : DB 프로그램에서 화면에 있는 콤포넌트 저장할때 공통으로 사용하기 위한 함수
@return : 저장 성공시 true, 실패시 false
@date : 2012.3.20.화
@author : 이성열
@todo :
*/
bool XdbfSaveStrGridToCSV(
  TStringGrid *pGrid
  , String sFileName
  , bool bOverwrite
  )
{
  // 파일 존재 확인
  if(FileExists(sFileName)==true)
  {
    if( bOverwrite == false )
    {
      LOG_PRINTFW("Xdb", L"SaveStrGridToCSV ERROR ! File exists <%s>", sFileName);
      return false;
    }

    if( DeleteFile(sFileName) == false)
    {
      LOG_PRINTFW("Xdb", L"SaveStrGridToCSV ERROR ! DeleteFile Fails <%s>", sFileName);
      return false;
    }
  }

  TStringList *pList = new TStringList;

  try
  {
    try
    {
      for (int i = 0; i < pGrid->RowCount; i++)
         {
        pList->Add(pGrid->Rows[i]->CommaText);
      }

      // 파일에 저장
      pList->SaveToFile(sFileName);

    }
    catch(Exception &e )
    {
      LOG_PRINTFW("Xdb", L"SaveStrGridToCSV EXCEPTION! <%s>", e.Message);
      return false;

      }
  }
  __finally
  {
    delete pList;
  }
  return true;

}