DragonNest/Common/Utility/CSVWriter.cpp

99 lines
1.6 KiB
C++
Raw Permalink Normal View History

#include "stdafx.h"
#include "CSVWriter.h"
#include "StringUtil.h"
// <20>ʹ<EFBFBD> <20><><EFBFBD>̹<EFBFBD> Į<><C4AE> <20><><EFBFBD><EFBFBD>
// Į<><C4AE> <20>߰<EFBFBD><DFB0><EFBFBD> AddColoum <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20>ʵ<EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> AddField<6C><64> <20><><EFBFBD><EFBFBD>
CSVWriter::CSVWriter()
{
m_stream = NULL;
m_bEnableWrite = false;
}
CSVWriter::~CSVWriter()
{
}
bool CSVWriter::Initialize( const wchar_t *FileName , std::wstring strColumname )
{
#ifndef _FINAL_BUILD
_wsetlocale(LC_ALL,L"kor"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>־<EFBFBD><D6BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>˴ϴ<CBB4>.
#endif
m_strFileName = FileName;
m_strColumname = strColumname;
return CheckExistFile();
}
bool CSVWriter::CheckExistFile()
{
if( _wfopen_s( &m_stream, m_strFileName.c_str(), L"r" ) != 0 )
{
if( _wfopen_s( &m_stream, m_strFileName.c_str(), L"w" ) != 0 )
{
return false;
}
else
{
fclose(m_stream);
WriteColumnName();
}
}
else
{
fclose(m_stream);
}
return true;
}
void CSVWriter::WriteColumnName()
{
StartWrite();
std::vector<std::wstring> tokens;
TokenizeW( m_strColumname , tokens, L";" );
for ( int j = 0 ; j < (int)tokens.size() ; j++ )
AddColumn(tokens[j].c_str());
AddField();
EndWrite();
}
void CSVWriter::StartWrite()
{
if( _wfopen_s( &m_stream, m_strFileName.c_str(), L"a" ) != 0 )
return;
m_bEnableWrite = true;
}
void CSVWriter::EndWrite()
{
if(!m_bEnableWrite)
return;
m_bEnableWrite = false;
fclose(m_stream);
}
void CSVWriter::AddColumn(const wchar_t *str)
{
if(m_bEnableWrite)
fwprintf_s( m_stream, L"%s,", str );
}
void CSVWriter::AddField( int nCount )
{
if(m_bEnableWrite)
for( int i = 0; i < nCount; i ++ )
fwprintf_s( m_stream, L"\n" );
}