From 308273fef97381356e96fcd9c17011409a3c2920 Mon Sep 17 00:00:00 2001 From: kojingeun <diteam.co.kr> Date: 수, 07 6월 2023 10:28:21 +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/include/akSTL/backup/akFileMgr.h | 80 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/include/akSTL/backup/akFileMgr.h b/ReviewHistory/include/akSTL/backup/akFileMgr.h new file mode 100644 index 0000000..158d0b9 --- /dev/null +++ b/ReviewHistory/include/akSTL/backup/akFileMgr.h @@ -0,0 +1,80 @@ +#pragma once + + + +#include "akLinker.h" +#include <vector> + +struct akSTL_DLLSPEC _Attribute +{ + _Attribute() + { + memset(Title , 0, sizeof(char)*128); + memset(Attribute , 0, sizeof(char)*128); + memset(Value , 0, sizeof(char)*128); + } + char Title[128]; + char Attribute[128]; + char Value[128]; +}; + +struct akSTL_DLLSPEC _Title +{ + _Title(char* title) + { + strcpy(Title, title); + }; + bool compare(char* title) + { + if(strcmp(title, Title) == 0 && strlen(title) == strlen(Title)) + { + return true; + } + return false; + }; + void clear() + { + memset(Title, 0, sizeof(char)*128); + }; + char Title[128]; +}; + +namespace akSTL +{ + class akSTL_DLLSPEC CakFileMgr + { + public: + CakFileMgr(void); + ~CakFileMgr(void); + + //타이틀 설정(OpenFile()함수와 MakeFile()함수를 호출하면 타이틀셋팅은 Null이 된다) + void SetTitle(char* title); + + //쓰기 관련 + //타이틀을 정한다. + bool SetAttribute(char* Attribute, int value); + bool SetAttribute(char* Attribute, double value); + bool SetAttribute(char* Attribute, char* value); + bool SetAttribute(char* Attribute, float value); + //쓰기 버퍼에 저장된 데이터를 파일로 저장 + bool MakeFile(char* filepath); + + + //읽기 관련 + //파일 열기(쓰기준비중이였다면 쓰기 버퍼는 초기화 된다) + bool OpenFile(char* filepath); + bool GetAttribute(char* Attribute, int& value); + bool GetAttribute(char* Attribute, double& value); + bool GetAttribute(char* Attribute, char* value); + bool GetAttribute(char* Attribute, float& value); + + private: + //빠른 찾기를 위해서 저장된 데이터 정렬 + void DataSort(); + char m_Title[128]; + std::vector<_Attribute> m_data; + + char* m_buffer; + int m_fastIndex; + }; +} \ No newline at end of file -- Gitblit v1.9.3