TNB Library
TnbInifileTextAccessor.h
[詳解]
1#pragma once
12
13
14
15//TNB Library
16namespace TNB
17{
18
19
20
42{
43 DEFSUPER(CTemporaryAccessor);
44public:
45
52 bool SetText(LPCTSTR lpszText)
53 {
54 _super::DeleteAllSection();
56 //
57 CStr sec;
58 loop ( i, vs.GetSize() )
59 {
60 const CStr& a = vs[i];
61 if ( a.IsEmpty() )
62 {
63 continue;
64 }
65 if ( a[0] == _T('[') )
66 {
67 int ofs = a.Find(_T(']'), 1);
68 if ( ofs >= 0 )
69 {
70 sec = a.Mid(1, ofs - 1);
71 }
72 continue;
73 }
74 int ofs = a.Find('=');
75 if ( ofs >= 0 )
76 {
77 CStr val;
78 CStr key = a.FindCut(_T('='), &val);
79 IAccessor::CValue vv(val);
80 if ( ! _super::WriteValue(sec, key, vv) )
81 {
82 return false;
83 }
84 }
85 }
86 return true;
87 }
88
93 CStr GetText(void) const
94 {
95 CStr data;
96 CStrVector sections = _super::EnumSectionNames();
97 loop ( i, sections.GetSize() )
98 {
99 const CStr& sec = sections[i];
100 data += CStr::Fmt(_T("[%s]\r\n"), sec);
101 CStrVector keys = _super::EnumKeyNames(sec);
102 loop ( i, keys.GetSize() )
103 {
104 const CStr& key = keys[i];
105 CValue v = _super::QueryValue(sec, key);
106 if ( ! v.IsNull() )
107 {
108 data += CStr::Fmt(_T("%s=%s\r\n"), key, v.QueryString());
109 }
110 }
111 }
112 return data;
113 }
114
119 virtual CStr GetTypeName(void) const
120 {
121 return _T("Inifile");
122 }
123
129 virtual bool Flush(void)
130 {
131 return true;
132 }
133};
134
135
136
137};//TNB
138
#define loop(VAR, CNT)
loop構文.
Definition: TnbDef.h:343
テンポラリ情報アクセス関係のヘッダ
iniファイル形式テキスト情報アクセスクラス
virtual CStr GetTypeName(void) const
[取得] タイプ名取得
virtual bool Flush(void)
[操作] フラッシュ.
bool SetText(LPCTSTR lpszText)
[設定] テキスト設定.
CStr GetText(void) const
[取得] テキスト取得.
static CVectorT< CStrT< TYP > > SeparateLine(const TYP *lpsz)
[取得] 改行毎分離
bool IsEmpty(void) const
[確認] 空チェック
Definition: TnbStr.h:528
static CStrT Fmt(const TCHAR *lpszFormat,...)
[作成] 書式付き文字列作成
Definition: TnbStr.h:1206
INT_PTR Find(TYP t, INDEX iFromIndex=0) const
[確認] 検索.
Definition: TnbStr.h:540
CStrT FindCut(TYP c, CStrT *_pstrRest=NULL) const
[作成] 切り分け
Definition: TnbStr.h:1122
CStrT Mid(INDEX iOffset, size_t iSize=INVALID_SIZE) const
[作成] 範囲取得.
Definition: TnbStr.h:766
テンポラリ情報アクセスクラス
virtual size_t GetSize(void) const
[取得] サイズ取得
Definition: TnbVector.h:368
情報アクセスの汎用値保持クラス.
Definition: TnbAccessor.h:100
CStr QueryString(void) const
[取得] 文字列情報取得
Definition: TnbAccessor.h:185
bool IsNull(void) const
[確認] 情報有無確認
Definition: TnbAccessor.h:178
TNB Library
Definition: TnbDoxyTitle.txt:2