mrDarker
2025-07-16 1dbe46cd9d0f181d08d5a69f72d8548628a13b9d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// HMConfigFile.h: interface for the CFileList class.
//
//////////////////////////////////////////////////////////////////////
 
#if !defined(AFX_FILELIST_H__9BD76395_D4EB_4173_A317_C040E5CF99AA__INCLUDED_)
#define AFX_FILELIST_H__9BD76395_D4EB_4173_A317_C040E5CF99AA__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
#include "BasedConfig.h"
 
class FileListItem : public CObject
{
public:
    CString s_strName;
    CString s_strValue;
 
    FileListItem()
    {
        Reset();
    }
 
    void Reset()
    {
        s_strName.Empty();
        s_strValue.Empty();
    }
 
    void SetItem(CString& strName, CString& strValue)
    {
        s_strName = strName;
        s_strValue = strValue;
    }
 
    void SetItem(CString& strItem)
    {
        if (strItem.IsEmpty())
            return;
 
        int nTemp1 = 0, nTemp2 = 0, nTemp3 = 0;
 
        nTemp1 = strItem.Find('=', 0);
        nTemp2 = strItem.Find('`', 0);
        nTemp3 = strItem.Find('`', nTemp2 + 1);
        if (nTemp1 == -1 || nTemp2 == -1 || nTemp3 == -1)
        {
            s_strName = strItem;
 
            s_strName.TrimRight(_T("\r"));
            s_strName.TrimRight(_T("\n"));
 
            return;
        }
 
        s_strName = strItem.Left(nTemp1);
        s_strName.TrimLeft(_T(" "));
        s_strName.TrimRight(_T(" "));
        s_strName.TrimRight(_T("\r"));
        s_strName.TrimRight(_T("\n"));
 
        s_strValue.Empty();
        s_strValue = strItem.Mid(nTemp2 + 1, nTemp3 - nTemp2 - 1);
        s_strValue.TrimLeft(_T(" "));
        s_strValue.TrimRight(_T(" "));
        s_strValue.TrimRight(_T("\r"));
        s_strValue.TrimRight(_T("\n"));
    }
};
 
class CFileList : public CBasedConfig 
{
public:
    CFileList();
//    CFileList(char* szFilename);    // »ó´ë°æ·Î
    virtual ~CFileList();
    
    BOOL    Initialize(HKEY hKey, CString strKey, CString strFilename);
    
    //////////////////////////////////////////////////////////////////////////
    BOOL    SetItemValue(CString strName,  CString& strValue);
    BOOL    SetItemValue(CString strName, int& nValue);
    BOOL    SetItemValue(CString strName, unsigned short &sValue);
    BOOL    SetItemValue(CString strName, double& dValue);
    
    BOOL    SetItemValue(int nIdx, CString strName, CString& strValue);
    BOOL    SetItemValue(int nIdx, CString strName, int& nValue);
    BOOL    SetItemValue(int nIdx, CString strName, unsigned short &sValue);
    BOOL    SetItemValue(int nIdx, CString strName, double& dValue);
    
    //////////////////////////////////////////////////////////////////////////
    int        GetItemValue(CString strName, CString& strValue, CString strDefault = _T(""));
    int        GetItemValue(CString strName, int& nValue, int nDefault = 0);
    int        GetItemValue(CString strName, unsigned short &nValue, unsigned short sDefault = 0);
    int        GetItemValue(CString strName, double& dValue, double dDefault = 0);
    
    int        GetItemValue(int nIdx, CString strName, CString& strValue, CString strDefault = _T(""));
    int        GetItemValue(int nIdx, CString strName, int& nValue, int nDefault = 0);
    int        GetItemValue(int nIdx, CString strName, unsigned short &nValue, unsigned short sDefault = 0);
    int        GetItemValue(int nIdx, CString strName, double& dValue, double dDefault = 0);
    
    BOOL    RemoveAllItem();
    BOOL    RemoveItem(CString strName);
    BOOL    RemoveItem(int nIdx, CString strName);
 
    
    BOOL    WriteToFile();
 
    void    SetRewriteMode(BOOL bRewrite);
    BOOL    GetRewriteMode();
    
 
    // OhByungGil  Modify -> LogFile Write
    void    SetLogMode(BOOL bMode);
    BOOL    GetLogMode();
    void    SetLogFilePath(CString strLogFilePath);
    CString GetLogFilePath();
 
protected:
    void    WriteLog( CString strName, CString strValue );
    void    WriteLog( CString strName, int& nValue );
    void    WriteLog( CString strName, unsigned short &nValue );
    void    WriteLog( CString strName, double& dValue );
 
    BOOL    WriteToLogFile(CString& strContents);
 
private:
    CString                m_strFileName;
    CObList                m_ItemList;
    int                    m_nItemCount;
    BOOL                m_bRewrite;
 
    CString                m_strLogFileName;    // OhByungGil 100531
    BOOL                m_bLogMode;
 
    CRITICAL_SECTION    m_cs;
};
 
#endif // !defined(AFX_FILELIST_H__9BD76395_D4EB_4173_A317_C040E5CF99AA__INCLUDED_)