#pragma once class CStringRawItem_CSOT { public: CStringRawItem_CSOT() { m_pstrName = NULL; m_nNameLen = 0; m_bIsEnd = FALSE; } ~CStringRawItem_CSOT() { if (m_pstrName) delete [] m_pstrName; m_pstrName = NULL; m_nNameLen = 0; } void ResetString() { if (!m_pstrName || m_nNameLen < 1) return; for (int i = 0; i < m_nNameLen-1; i++) m_pstrName[i] = 0x20; m_pstrName[m_nNameLen-1] = NULL; } BOOL SetLength(int nLen) { m_nNameLen = nLen + 1; if (m_pstrName) delete [] m_pstrName; m_pstrName = new char[m_nNameLen]; ResetString(); return TRUE; } int GetLength() { if (!m_pstrName) return -1; return m_nNameLen-1; } BOOL SetName(char* strName) { SetLength((int)strlen(strName)); if (!m_pstrName) return FALSE; for (int i = 0; i < (int)strlen(strName); i++) { if(strName[i] == 0x20) //" " m_pstrName[i] = 0x5f; //"_" else m_pstrName[i] = strName[i]; } return TRUE; } char* GetName() { return m_pstrName; } BOOL WriteToFileName(FILE *fp) { if (!fp || !m_pstrName) return FALSE; fprintf(fp, "%s", m_pstrName); return TRUE; } protected: char* m_pstrName; int m_nNameLen; BOOL m_bIsEnd; }; class CStringRawData_CSOT { public: CStringRawData_CSOT() { m_pstrData = NULL; m_nDataLen = 0; } ~CStringRawData_CSOT() { if (m_pstrData) delete [] m_pstrData; m_pstrData = NULL; m_nDataLen = 0; } CStringRawData_CSOT(const CStringRawData_CSOT& rhs) { m_pstrData = NULL; m_nDataLen = 0; if (this != &rhs && rhs.m_nDataLen > 0) { SetLength(rhs.m_nDataLen - 1); strcpy_s(m_pstrData,rhs.m_nDataLen, rhs.m_pstrData); } } CStringRawData_CSOT& operator=(const CStringRawData_CSOT& rhs) { if (this != &rhs) { SetLength(rhs.m_nDataLen - 1); strcpy_s(m_pstrData,rhs.m_nDataLen, rhs.m_pstrData); } return *this; } void ResetString() { if (!m_pstrData || m_nDataLen < 1) return; for (int i = 0; i < m_nDataLen - 1; i++) m_pstrData[i] = 0x20; m_pstrData[m_nDataLen - 1] = NULL; } BOOL SetLength(int nLen) { m_nDataLen = nLen + 1; if (m_pstrData) delete [] m_pstrData; m_pstrData = new char[m_nDataLen]; ResetString(); return TRUE; } BOOL SetData(char* strData) { SetLength((int)strlen(strData)); if (!m_pstrData) return FALSE; for (int i = 0; i < (int)strlen(strData); i++) { if(strData[i] == 0x20) //" " m_pstrData[i] = 0x5f; //"_" else m_pstrData[i] = strData[i]; } return TRUE; } BOOL SetData(int nData) { char str[14] = {0, }; sprintf_s(str, "%d", nData); SetLength((int)strlen(str)); if (!m_pstrData) return FALSE; for (int i = 0; i < (int)strlen(str); i++) m_pstrData[i] = str[i]; return TRUE; } // [2017/07/28 16:02:27 by jylee] related Dight ¼³Á¤ BOOL SetData(double dData, int nDecimal=0, int nDigit = 0) { char str[14] = {0, }; char strTemp[10] = {0, }; if( nDecimal == 0 && nDigit == 0 ) { nDecimal = 2; nDigit = 3; } sprintf_s( strTemp, "%%%d.%df", nDecimal, nDigit ); sprintf_s(str, strTemp, dData); ///sprintf_s(str, "%2.3f", dData); SetLength((int)strlen(str)); if (!m_pstrData) return FALSE; for (int i = 0; i < (int)strlen(str); i++) m_pstrData[i] = str[i]; return TRUE; } char* GetData() { return m_pstrData; } int GetLength() { return m_nDataLen - 1; } BOOL WriteToFileData(FILE *fp) { if (!fp || !m_pstrData || m_nDataLen == 0) return FALSE; fprintf_s(fp, "%s", m_pstrData); return TRUE; } BOOL WriteToFileData(CFile &fp) { if (!m_pstrData || m_nDataLen == 0) return FALSE; fp.Write(m_pstrData, m_nDataLen-1); return TRUE; } protected: char* m_pstrData; int m_nDataLen; }; #include using namespace std; typedef std::vector VectorStringCSOTRawData; typedef std::vector::iterator VectorStringCSOTRawDataIt; typedef std::vector::const_iterator constVectorStringCSOTRawDataIt;