001:
002:
003:
004:
005:
006:
007:
008:
009:
010: #include "stdafx.h"
011: #include "UKIniAccess.h"
012:
013: CUKIniAccess::CUKIniAccess(LPCTSTR strFileName)
014: {
015: ASSERT(strFileName);
016: m_strFileName=strFileName;
017: }
018:
019: CUKIniAccess::~CUKIniAccess()
020: {}
021:
022: CUKIniAccess::Init(LPCTSTR strFileName)
023: {
024: m_strFileName=strFileName;
025: }
026:
027:
028: BOOL CUKIniAccess::ReadValue(LPCTSTR szSection,LPCTSTR szKey,int* pValue)
029: {
030: if (m_strFileName=="")
031: return FALSE;
032:
033: ASSERT(pValue);
034:
035: CString str;
036: if (!ReadValue(szSection,szKey,str))
037: return FALSE;
038:
039: sscanf(str,"%i",pValue);
040:
041: return TRUE;
042: }
043:
044: BOOL CUKIniAccess::ReadValue(LPCTSTR szSection,LPCTSTR szKey,long* pValue)
045: {
046: if (m_strFileName=="")
047: return FALSE;
048:
049: ASSERT(pValue);
050:
051: CString str;
052: if (!ReadValue(szSection,szKey,str))
053: return FALSE;
054:
055: sscanf(str,"%i",pValue);
056:
057: return TRUE;
058: }
059:
060: BOOL CUKIniAccess::ReadValue(LPCTSTR szSection,LPCTSTR szKey,CString& rValue)
061: {
062: if (m_strFileName=="")
063: return FALSE;
064:
065: TCHAR sz[1024];
066:
067: DWORD nValue = GetPrivateProfileString(szSection,szKey,"",sz,1024,m_strFileName);
068: if (nValue<=0)
069: {
070: #ifdef _DEBUG
071: static int nErrorString=0;
072: CString str;str.Format("%03d %s",++nErrorString,szSection);
073: WritePrivateProfileString("SectionKey_NotFound",str,szKey,m_strFileName);
074: #endif
075: return FALSE;
076: }
077:
078: if (nValue>=1023)
079: sz[1023]='\0';
080:
081: rValue=sz;
082:
083: return TRUE;
084: }
085:
086: BOOL CUKIniAccess::ReadValue(LPCTSTR szSection,LPCTSTR szKey,CLongArray& rValue)
087: {
088: if (m_strFileName=="")
089: return FALSE;
090:
091: CString str;
092: if (!ReadValue(szSection,szKey,str))
093: return FALSE;
094:
095: TCHAR *psz=str.GetBuffer(20);
096: TCHAR *psz2=psz;
097:
098: rValue.RemoveAll();
099:
100: while (psz2)
101: {
102: psz2=strchr(psz,',');
103: if (psz2)
104: *psz2='\0';
105:
106: long nVal;
107: sscanf(psz,"%i",&nVal);
108: rValue.Add(nVal);
109:
110: psz=psz2+1;
111: }
112:
113: str.ReleaseBuffer();
114:
115: return TRUE;
116: }
117: