DragonNest/Common/Utility/CSVWriter.cpp

99 lines
3.2 KiB
C++
Raw Normal View History

2024-12-20 16:56:44 +08:00
<EFBFBD><EFBFBD>#include "stdafx.h"
#include "CSVWriter.h"
#include "StringUtil.h"
// <EFBFBD><EFBFBD> $<EFBFBD>t<EFBFBD> <EFBFBD> |<EFBFBD><EFBFBD><EFBFBD> $<EFBFBD><EFBFBD>
// |<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AddColoum <<EFBFBD>\<EFBFBD> $<EFBFBD><EFBFBD>
// D<EFBFBD>ܴ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AddField\<EFBFBD> $<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"); // \<EFBFBD><EFBFBD>|<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>D<EFBFBD> t<EFBFBD><EFBFBD>ȴ<EFBFBD>|<EFBFBD> m<EFBFBD><EFBFBD>ļ <EFBFBD>Ŵ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><<EFBFBD>\<EFBFBD> \<EFBFBD><EFBFBD>)<EFBFBD>Ȳ<EFBFBD><EFBFBD>.
#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" );
}