From 4114d380bd594385fa6f10bb36a9eef4d19e8db1 Mon Sep 17 00:00:00 2001 From: kojingeun <diteam.co.kr> Date: 월, 05 6월 2023 23:33:58 +0900 Subject: [PATCH] Ongoing50 #4517 CF AOI Review 결과 파일 찾기 실패 개선 1. Find Bin File 찾는 Library 변경 - CRT _findfirsti64 / _findnexti64 -> C++17 Filesystem directory_iterator - 파일 탐색 시간 20k Files(80GB) 1sec 소요 --- ReviewHistory/ReveiwHistory/stdafx.cpp | 137 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 137 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/ReveiwHistory/stdafx.cpp b/ReviewHistory/ReveiwHistory/stdafx.cpp new file mode 100644 index 0000000..2c9e56f --- /dev/null +++ b/ReviewHistory/ReveiwHistory/stdafx.cpp @@ -0,0 +1,137 @@ +癤� +// stdafx.cpp : �몴以� �룷�븿 �뙆�씪留� �뱾�뼱 �엳�뒗 �냼�뒪 �뙆�씪�엯�땲�떎. +// ReveiwHistory.pch�뒗 誘몃━ 而댄뙆�씪�맂 �뿤�뜑媛� �맗�땲�떎. +// stdafx.obj�뿉�뒗 誘몃━ 而댄뙆�씪�맂 �삎�떇 �젙蹂닿� �룷�븿�맗�땲�떎. + +#include "stdafx.h" + + +CCriticalSection g_criticalExe; +CCriticalSection g_criticalLog; + + +CString GetExePath() +{ + g_criticalExe.Lock(); + + static TCHAR pBuf[256] = { 0, }; + + memset(pBuf, NULL, sizeof(pBuf)); + + if (AfxGetApp()) + GetModuleFileName(AfxGetApp()->m_hInstance, pBuf, sizeof(pBuf)); + else + GetModuleFileName(NULL, pBuf, sizeof(pBuf)); + + CString strFilePath; + + strFilePath.Format(_T("%s"), pBuf); + + strFilePath = strFilePath.Left(strFilePath.ReverseFind(_T('\\'))); + + g_criticalExe.Unlock(); + + return strFilePath.GetString(); +} + +void LOG(int nType, const char* fmt, ...) +{ + g_criticalLog.Lock(); + + static _TCHAR szLog[5096]; + + FILE* fp = NULL; + CTime tm = CTime::GetCurrentTime(); + CString strLog = _T(""); + CString strPath = _T(""); + va_list args; + SYSTEMTIME cur_time; + + if (fmt == NULL) + { + g_criticalLog.Unlock(); + + return; + } + + ZeroMemory(szLog, 5096); + va_start(args, fmt); + wvsprintf(szLog, fmt, args); + va_end(args); + + strPath.Format("%s\\Log\\%s", GetExePath(), tm.Format("%Y_%m_%d_%H.log").GetString()); + + fopen_s(&fp, (LPSTR)(LPCSTR)strPath, "a+"); + + GetLocalTime(&cur_time); + + strLog.Format("%04d-%02d-%02d %02d:%02d:%02d:%03ld : ", + cur_time.wYear, + cur_time.wMonth, + cur_time.wDay, + cur_time.wHour, + cur_time.wMinute, + cur_time.wSecond, + cur_time.wMilliseconds); + + if (fp != NULL) + { + switch (nType) + { + case Normal: strLog += _T("[NORMAL ] : "); break; + case Dbg: strLog += _T("[DEBUG ] : "); break; + case Operation: strLog += _T("[OPERATION ] : "); break; + case Err: strLog += _T("[ERROR ] : "); break; + } + + strLog += szLog; + + fprintf(fp, "%s\r\n", (LPSTR)(LPCSTR)strLog); + fflush(fp); + fclose(fp); + } + + g_criticalLog.Unlock(); +} + +void INIWriteStr(CString strAppName, CString strKeyName, CString strValue, CString strFilePath) +{ + WritePrivateProfileString(strAppName, strKeyName, strValue, strFilePath); +} + +CString INIReadStr(CString strAppName, CString strKeyName, CString strFilePath) +{ + TCHAR szReturnString[1024] = { 0, }; + + memset(szReturnString, NULL, 1024); + + GetPrivateProfileString(strAppName, strKeyName, _T(""), szReturnString, 1024, strFilePath); + + CString str; + + str.Format(_T("%s"), szReturnString); + + return str; +} + +void INIWriteInt(CString strAppName, CString strKeyName, int nValue, CString strFilePath) +{ + CString str; + + str.Format(_T("%d"), nValue); + + WritePrivateProfileString(strAppName, strKeyName, str, strFilePath); +} + +int INIReadInt(CString strAppName, CString strKeyName, CString strFilePath) +{ + TCHAR szReturnString[1024] = { 0, }; + + memset(szReturnString, NULL, 1024); + + GetPrivateProfileString(strAppName, strKeyName, _T(""), szReturnString, 1024, strFilePath); + + int nRet = atoi(szReturnString); + + return nRet; +} \ No newline at end of file -- Gitblit v1.9.3