87 CStr str = _super::MakeDefineFilePath();
110 DWORD r = ::GetFileAttributes(m_strFile);
111 return ToInt(r) >= 0;
132 HANDLE h = ::CreateFile(m_strFile, GENERIC_WRITE | GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL);
134 if ( h != INVALID_HANDLE_VALUE )
138 BYTE buf[2] = { 0xFF, 0xFE };
140 if ( ::WriteFile(h, buf, 2, &writed, NULL) && 2 == writed )
160 return _T(
"Inifile");
170 ::WritePrivateProfileString(NULL, NULL, NULL, m_strFile);
183 DWORD dwRc = ::GetPrivateProfileSectionNames(
193 CStr ss = lpszSectionName;
203 if ( ! s.
IsEmpty() && s[0] ==
'\\' )
218 if ( ! vs[i].IsEmpty() )
221 INDEX d = s.
Find(_T(
'\\'));
222 if ( d != INVALID_INDEX )
226 if ( vstrSecNames.
Find(s) == INVALID_INDEX )
245 DWORD dwRc = ::GetPrivateProfileSectionNames(
255 CStr ss = lpszSectionName;
261 if ( ! ::WritePrivateProfileString(vs[i], NULL, NULL, m_strFile) )
279 DWORD dwRc = ::GetPrivateProfileSection(
290 vstrKeyNames.
Add(vstr[i].FindCut(
'='));
306 if ( ! m_QueryString(dmy, lpszSectionName, lpszKey) )
322 if ( m_QueryString(s, lpszSectionName, lpszKey) )
342 return m_Delete(lpszSectionName, lpszKey);
344 return m_WriteString(lpszSectionName, lpszKey, value.
QueryString());
348 enum { E_BufferSize = 65536 };
357 CStr m_GetString(LPCTSTR lpszSectionName, LPCTSTR lpszKey, LPCTSTR lpszDefault)
const
359 ASSERT( lpszDefault != NULL );
361 ::GetPrivateProfileString(
380 bool m_QueryString(
CStr& _r, LPCTSTR lpszSectionName, LPCTSTR lpszKey)
const
382 _r = m_GetString(lpszSectionName, lpszKey, _T(
"*1"));
383 if ( _r.
Compare(_T(
"*1")) == 0 )
385 _r = m_GetString(lpszSectionName, lpszKey, _T(
"*2"));
386 if ( _r.
Compare(_T(
"*2")) == 0 )
402 bool m_WriteString(LPCTSTR lpszSectionName, LPCTSTR lpszKey, LPCTSTR lpszData)
406 DWORD r = ::GetPrivateProfileString(lpszSectionName, lpszKey, _T(
""), work, len + 2, m_strFile);
411 return !! ::WritePrivateProfileString(lpszSectionName, lpszKey, lpszData, m_strFile);
421 bool m_Delete(LPCTSTR lpszSectionName, LPCTSTR lpszKey)
425 return !! ::WritePrivateProfileString(lpszSectionName, lpszKey, NULL, m_strFile);
CE専用 INI ファイル情報アクセス関係のヘッダ
#define loop(VAR, CNT)
loop構文.
Double Null Terminate(DNT)型文字列操作関係のヘッダ
Double Null Terminate(DNT)型文字列管理
LPTSTR GetBuffer(int iLength)
[操作] 書き込みバッファ要求.
void ReleaseBuffer(void)
[操作] 割り当てたバッファを開放.
CStrVector ToStrVector(void) const
[取得] 文字列配列取得.
CInifileAccessor(LPCTSTR lpszFile=NULL)
コンストラクタ
virtual CStr GetTypeName(void) const
[取得] タイプ名取得
virtual bool Flush(void)
[操作] フラッシュ.
CStr GetBaseFileName(void) const
[取得] 対象ファイル取得
virtual CStrVector EnumKeyNames(LPCTSTR lpszSectionName) const
[取得] 名前一覧取得
virtual bool WriteValue(LPCTSTR lpszSectionName, LPCTSTR lpszKey, const IAccessor::CValue &value)
[設定] 情報設定
virtual bool DeleteSection(LPCTSTR lpszSectionName)
[削除] 指定セクション削除
virtual CValue QueryValue(LPCTSTR lpszSectionName, LPCTSTR lpszKey) const
[取得] 情報取得
bool NewBaseFile(bool isUnicode=false)
[作成] 対象ファイル作成.
virtual EKind GetKeyKind(LPCTSTR lpszSectionName, LPCTSTR lpszKey) const
[取得] 情報取種取得
void SetBase(LPCTSTR lpszFile=NULL)
[設定] 対象ファイル指定
bool ExistBaseFile(void) const
[確認] 対象ファイル存在確認.
static CStr MakeInifilePath(void)
[作成] iniファイルパス作成.
virtual CStrVector EnumSectionNames(LPCTSTR lpszSectionName=NULL) const
[取得] セクション名一覧取得
int Compare(const TYP *lpszSubject) const
[確認] 文字列比較
bool IsEmpty(void) const
[確認] 空チェック
CStrT Left(size_t iSize) const
[作成] 範囲取得.
void ReleaseBuffer(void)
[操作] 割り当てたバッファを開放.
size_t GetLength(void) const
[取得] 文字列長
INT_PTR Find(TYP t, INDEX iFromIndex=0) const
[確認] 検索.
CStrT Mid(INDEX iOffset, size_t iSize=INVALID_SIZE) const
[作成] 範囲取得.
TYP * GetBuffer(size_t iLength=0)
[操作] 書き込みバッファ要求.
virtual size_t GetSize(void) const
[取得] サイズ取得
CVectorT< TYP > Mid(INDEX startIndex, size_t size=0) const
[作成] 切り出し
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
CStr QueryString(void) const
[取得] 文字列情報取得
EKind GetKind(void) const
[取得] 情報取種取得
int Compare(LPCSTR P1, LPCSTR P2, INT_PTR len=-1, DWORD dwCmpFlags=0)
[比較] 文字列比較(ASCII/SJIS用)
size_t GetLen(LPCSTR lpsz)
[計算] 文字列長計算(ASCII/SJIS用)
int ToInt(LPCSTR lpsz, int iBase=10)
[変換] INT変換(ASCII/SJIS用).
INDEX Find(const IChecker &checker, INDEX startIndex=0, bool boIsReverse=false) const
[検索] 条件一致要素の検索.