From 8798c83bde2644499bed540c2d10da7f3af0022c Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 05 11월 2021 09:05:23 +0900 Subject: [PATCH] # 마지막 오프셋 저장일 , 불러온 리뷰 데이터 저장일 비교 조건 변경 --- ReviewHistory/include/MacroFile.h | 421 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 421 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/include/MacroFile.h b/ReviewHistory/include/MacroFile.h new file mode 100644 index 0000000..2f68021 --- /dev/null +++ b/ReviewHistory/include/MacroFile.h @@ -0,0 +1,421 @@ +#pragma once +#include "stdafx.h" + +class CMacroFile +{ +public: + CMacroFile() { Clear(); } + ~CMacroFile() { Clear(); } + + void Clear() + { + m_arTiltleLine.RemoveAll(); + m_arValueLine.RemoveAll(); + } + + BOOL Read(const TCHAR* lpstrFilePath) + { + CStdioFile file; + CFileException ex; + + if ( !file.Open(lpstrFilePath, CFile::modeRead, &ex)) + { + +#ifdef _DEBUG + TCHAR szCause[255] = {0}; + ex.GetErrorMessage(szCause, 255); + TRACE(szCause); +#endif + return FALSE; + } + + CString strLine; + CString strTiltle, strValue; + int p = 0; + + while(file.ReadString(strLine)) + { + strTiltle = _T(""); + strValue = _T(""); + + + if ( -1 == (p = strLine.Find(_T('='), 0))) continue; + + strTiltle = strLine.Left(p); + strValue = strLine.Right(strLine.GetLength() - p - 1); + + m_arTiltleLine.Add(strTiltle); + m_arValueLine.Add(strValue); + + + } + + file.Close(); + + return TRUE; + } + + BOOL Write(const TCHAR* lpstrFilePath) + { + CStdioFile file; + CFileException ex; + + if ( !file.Open(lpstrFilePath, CFile::modeCreate | CFile::modeWrite, &ex)) + { +#ifdef _DEBUG + TCHAR szCause[255] = {0}; + ex.GetErrorMessage(szCause, 255); + TRACE(szCause); +#endif + return FALSE; + } + + CString strLine = _T(""); + CString strTiltle, strValue; + + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strTiltle = _T(""); + strValue = _T(""); + + strTiltle = m_arTiltleLine.GetAt(nIndex); + strValue = m_arValueLine.GetAt(nIndex); + + strLine.Format(_T("%s=%s"), strTiltle, strValue); + + file.WriteString(CString(strLine)+_T("\n")); + + } + + file.Close(); + + return TRUE; + } + + void GetItem(const TCHAR* lpstrTitle, short& sValue, short sDefault=0) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle)==0) + { + strText = m_arValueLine.GetAt(nIndex); + sValue = ::_ttoi((LPCTSTR)strText); + return; + } + } + sValue = sDefault; + } + + void GetItem(const TCHAR* lpstrTitle, int& nValue, int nDefault=0) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle)==0) + { + strText = m_arValueLine.GetAt(nIndex); + strText.Remove('`'); + nValue = ::_ttoi((LPCTSTR)strText); + return; + } + } + nValue = nDefault; + } + + void GetItem(const TCHAR* lpstrTitle, UINT& unValue, UINT unDefault=0) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle)==0) + { + strText = m_arValueLine.GetAt(nIndex); + unValue = ::_ttoi((LPCTSTR)strText); + return; + } + } + unValue = unDefault; + } + + void GetItem(const TCHAR* lpstrTitle, long& lValue, long lDefault=0) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle) == 0) + { + strText = m_arValueLine.GetAt(nIndex); + lValue = ::_ttoi((LPCTSTR)strText); + return; + } + } + lValue = lDefault; + } + + void GetItem(const TCHAR* lpstrTitle, float& fValue, float fDefault=0.0f) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle) == 0) + { + strText = m_arValueLine.GetAt(nIndex); + //strText.Replace('\'',''); + strText.Remove('`'); + fValue = float(_tstof((LPCTSTR)strText)); + return; + } + } + fValue = fDefault; + } + + void GetItem(const TCHAR* lpstrTitle, double& dValue, double dDefault=0.0) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle) == 0) + { + strText = m_arValueLine.GetAt(nIndex); + dValue = _tcstod((LPCTSTR)strText, NULL); + return; + } + } + dValue = dDefault; + } + + void GetItem(const TCHAR* lpstrTitle, TCHAR &cValue, TCHAR cDefault=_T(' ')) + { + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle) == 0) + { + strText = m_arValueLine.GetAt(nIndex); + cValue = (m_arValueLine.GetAt(nIndex)).GetAt(0); + return; + } + } + cValue = cDefault; + } + + void GetItem(const TCHAR* lpstrTitle, CString& strValue, CString strDefault=_T("")) + { + CString strText = _T(""); + + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + + if(strText.Compare(lpstrTitle) == 0) + { + strValue = m_arValueLine.GetAt(nIndex); + return; + } + } + strValue = strDefault; + } + + + void SetItem(const TCHAR* lpstrTitle, const short& sValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%d"), sValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle,const int& nValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%d"), nValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle, const UINT& unValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%d"), unValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle, const long& lValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%d"), lValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle, const float& fValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%.8f"), fValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle, const double& dValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%.8lf"), dValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle, const TCHAR &cValue) + { + TCHAR szValue[256]; + _stprintf_s(szValue, _T("%c"), cValue); + + SetItem(lpstrTitle, szValue); + } + + void SetItem(const TCHAR* lpstrTitle, const CString& strValue) + { + SetItem(lpstrTitle, (LPCTSTR)strValue); + } + + void SetItem(const TCHAR* lpstrTitle, const TCHAR* lpstrValue) + { + BOOL bNewItem = TRUE; + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle) == 0) + { + m_arValueLine.SetAt(nIndex, lpstrValue); + bNewItem = FALSE; + } + } + + if(bNewItem) + { + m_arTiltleLine.Add(lpstrTitle); + m_arValueLine.Add(lpstrValue); + } + } + + void GetItem(const TCHAR* lpstrTitle, TCHAR* lpBuffer, const int nMaxLength) + { + ASSERT(lpBuffer); + ASSERT(nMaxLength > 0); + + ZeroMemory(lpBuffer, sizeof(char)*nMaxLength); + + CString strText = _T(""); + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strText = m_arTiltleLine.GetAt(nIndex); + if(strText.Compare(lpstrTitle) == 0) + { + strText = m_arValueLine.GetAt(nIndex); + _tcscpy_s(lpBuffer, strText.GetLength(), (LPCTSTR)strText); + break; + } + } + } + + + void GetItem(const TCHAR* lpstrStartChar, const TCHAR* lpstrEndChar, TCHAR* lpBuffer, const int nMaxLength) + { + ASSERT(lpBuffer); + ASSERT(nMaxLength > 0); + + ZeroMemory(lpBuffer, sizeof(char)*nMaxLength); + + CString strTitle , strValue ; + + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strTitle = _T(""); + strValue = _T(""); + + strTitle = m_arTiltleLine.GetAt(nIndex); + strValue = m_arValueLine.GetAt(nIndex); + + if (strTitle.IsEmpty()) continue; + + if( strTitle.GetAt(0) == _T('!') && strValue.Compare(lpstrStartChar) == 0) + { + for(int n2thIndex = nIndex+1; m_arTiltleLine.GetSize(); n2thIndex++) + { + strTitle = _T(""); + strValue = _T(""); + + strTitle = m_arTiltleLine.GetAt(n2thIndex); + strValue = m_arValueLine.GetAt(n2thIndex); + + if (strTitle.IsEmpty()) continue; + + if( strTitle.GetAt(0) == _T('!') && strValue.Compare(lpstrEndChar) == 0) + break; + + if ( int((_tcslen(lpBuffer) + strValue.GetLength()+1)) > nMaxLength) + break; + + _tcscat_s(lpBuffer, strValue.GetLength(), (LPCTSTR)strValue); + _tcscat_s(lpBuffer, 1, _T("\n")); + } + } + } + } + + void SetItem(const TCHAR* lpstrStartChar, const TCHAR* lpstrEndChar, const TCHAR* lpstrMacroFormat, ...) + { + va_list list; + TCHAR strText[2000] = {0}; + + va_start(list, lpstrMacroFormat); + _vstprintf_s(strText, lpstrMacroFormat, list); + va_end(list); + + CString strTitle , strValue ; + + BOOL bNewItem = TRUE; + + for(int nIndex=0; nIndex<m_arTiltleLine.GetSize(); nIndex++) + { + strTitle = m_arTiltleLine.GetAt(nIndex); + strValue = m_arValueLine.GetAt(nIndex); + + if (strTitle.IsEmpty()) continue; + + if( strTitle.GetAt(0) == _T('!') && strValue.Compare(lpstrEndChar) == 0) + { + m_arTiltleLine.InsertAt(nIndex, _T("!"), 1); + m_arValueLine.InsertAt(nIndex, strText, 1); + bNewItem = FALSE; + break; + } + } + + if (bNewItem) + { + m_arTiltleLine.Add(_T("!")); + m_arValueLine.Add(lpstrStartChar); + + m_arTiltleLine.Add(_T("!")); + m_arValueLine.Add(strText); + + m_arTiltleLine.Add(_T("!")); + m_arValueLine.Add(lpstrEndChar); + + } + } + +protected: + CStringArray m_arTiltleLine; + CStringArray m_arValueLine; +}; -- Gitblit v1.9.3