#include "stdafx.h" #include "CSVWriter.h" #include "StringUtil.h" // ÃÊ¹Ý ³×ÀÌ¹Ö Ä®·³ ¼³Á¤ // Ä®·³ Ãß°¡´Â AddColoum À¸·Î ¼³Á¤ // Çʵå Ãß°¡´Â AddField·Î ¼³Á¤ 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"); // ·ÎÄÉÀÏ ÁöÁ¤À» ÇØÁÖ¾î¾ß ±¹°¡º° ¾ð¾î°¡ Á¤»óÀûÀ¸·Î Ç¥ÇöµË´Ï´Ù. #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 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" ); }