#ifdef _BASE_LIBRARY_ #include "../stdafx.h" #endif #include "DelimitedFile.h" // TODO: CDelimitedFile::Write °è¿­ Á¦ÀÛ CDelimitedFile::CDelimitedFile(const char* pszDelimiter) : m_fpFile( NULL ), m_dwColumn( 0 ), m_dwColumnCount( 0 ) { strncpy(m_szDelimiter, pszDelimiter, MAX_DELIMITER_NUM); } CDelimitedFile::~CDelimitedFile() { Close(); } BOOL CDelimitedFile::Open( LPCSTR szFilename, int nHeadLine, UINT nOpenFlags ) { m_fpFile = ::fopen( szFilename, (nOpenFlags & modeCreate) ? "wt" : "rt" ); if (NULL == m_fpFile) { #ifdef _BASE_LIBRARY_ g_Log.ErrLog(__FUNCTION__, __FILE__, __LINE__, "ÆÄÀÏ %s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù.", szFilename); #endif return FALSE; } if (nHeadLine > -1) { for (int i=0; i m_dwColumnCount) return FALSE; if( (m_dwColumn == (DWORD) nColumn) ) return TRUE; if( nColumn == 0 ) { m_dwColumn = 0; strtok(m_szLine, m_szDelimiter); } else { for(;m_dwColumn < m_dwColumnCount && nColumn != m_dwColumn; ++m_dwColumn ) pszPos = strtok(0, m_szDelimiter); if(m_dwColumn == m_dwColumnCount) { memcpy(m_szLine, m_szBackupLine, MAX_LINE_LENGTH); pszPos = strtok(m_szLine, m_szDelimiter); for(m_dwColumn = 1; m_dwColumn < (DWORD)nColumn && nColumn != m_dwColumn; ++m_dwColumn ) pszPos = strtok(NULL, m_szDelimiter ); } } return TRUE; } int CDelimitedFile::FindColumn(const char *szField ) { // list¿¡¼­ ã±â const std::basic_string::size_type npos = -1; for(std::basic_string::size_type nCount = 0; nCount < m_ColumnNames.size(); ++nCount) { if(npos != m_ColumnNames[nCount].find(szField)) { return (int)nCount; } } return npos; }