TNB Library
|
Double Null Terminate(DNT)型文字列管理 [詳解]
#include <TnbDntStr.h>
公開メンバ関数 | |
void | Add (const CStrVector &vstr) |
[設定] 追加. [詳解] | |
void | Add (LPCTSTR lpszStr) |
[設定] 追加. [詳解] | |
CDoubleNullTerminateStr (const CDoubleNullTerminateStr &d) | |
コピーコンストラクタ [詳解] | |
CDoubleNullTerminateStr (LPCTSTR lpszStr=NULL) | |
コンストラクタ [詳解] | |
virtual INT_PTR | Compare (const CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
void | Empty (void) |
[設定] 空化 [詳解] | |
LPTSTR | GetBuffer (int iLength) |
[操作] 書き込みバッファ要求. [詳解] | |
size_t | GetSize (void) const |
[取得] DNT型文字列数種特 [詳解] | |
virtual bool | IsEqual (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
operator LPCTSTR (void) const | |
[取得] DNT型文字列取得 [詳解] | |
bool | operator!= (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
INT_PTR | operator- (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
bool | operator< (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
bool | operator<= (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
bool | operator== (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
bool | operator> (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
bool | operator>= (const TNB::CDoubleNullTerminateStr &t) const |
[確認] 比較 [詳解] | |
void | ReleaseBuffer (void) |
[操作] 割り当てたバッファを開放. [詳解] | |
void | Set (const CStrVector &vstr) |
[設定] 代入 [詳解] | |
void | Set (LPCTSTR lpszStr) |
[設定] 代入 [詳解] | |
void | SetDntStr (LPCTSTR lpszzDntStr, TCHAR tcSepaChar=0) |
[設定] 代入 [詳解] | |
CStr | ToString (TCHAR tcSepaChar='|') const |
[取得] 文字列取得. [詳解] | |
CStrVector | ToStrVector (void) const |
[取得] 文字列配列取得. [詳解] | |
Double Null Terminate(DNT)型文字列管理
Windows API の引数、戻り値にある、複数の文字列を扱う方法の一つ、 「¥0を仕切り、¥0¥0が終端」という文字列を扱うクラスです。
CStrVector vstrSecNames; CDoubleNullTerminateStr dntstr; DWORD dwRc = ::GetPrivateProfileSectionNames( //DNT型で受ける dntstr.GetBuffer(65536), 65536 , _T("Abc.ini") ); dntstr.ReleaseBuffer(); if ( dwRc > 0 ) { vstrSecNames = dntstr.ToStrVector(); //文字列配列の分解 } return vstrSecNames; |
TnbDntStr.h の 60 行目に定義があります。
CDoubleNullTerminateStr | ( | LPCTSTR | lpszStr = NULL | ) |
CDoubleNullTerminateStr | ( | const CDoubleNullTerminateStr & | d | ) |
void Add | ( | const CStrVector & | vstr | ) |
[設定] 追加.
保持している DNT型文字列に、配列内容をDNT型で格納します。
vstr | 追加する CStrVector のインスタンス |
TnbDntStr.h の 192 行目に定義があります。
void Add | ( | LPCTSTR | lpszStr | ) |
|
virtual |
[確認] 比較
t | 比較対象 |
0 | 自分は t と同じ |
1以上 | 自分は t より大きい |
0未満 | 自分は t より小さい |
IComparableT< TNB::CDoubleNullTerminateStr >を実装しています。
TnbDntStr.h の 89 行目に定義があります。
void Empty | ( | void | ) |
[設定] 空化
TnbDntStr.h の 97 行目に定義があります。
LPTSTR GetBuffer | ( | int | iLength | ) |
[操作] 書き込みバッファ要求.
必要サイズの書き込んでもよいバッファを返します。
iLength | 必要な長さ |
TnbDntStr.h の 267 行目に定義があります。
size_t GetSize | ( | void | ) | const |
|
virtualinherited |
operator LPCTSTR | ( | void | ) | const |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
void ReleaseBuffer | ( | void | ) |
[操作] 割り当てたバッファを開放.
GetBuffer() で割り当てたバッファを開放し、文字列を本クラスに取り込みます。
TnbDntStr.h の 277 行目に定義があります。
void Set | ( | const CStrVector & | vstr | ) |
void Set | ( | LPCTSTR | lpszStr | ) |
void SetDntStr | ( | LPCTSTR | lpszzDntStr, |
TCHAR | tcSepaChar = 0 |
||
) |
CStr ToString | ( | TCHAR | tcSepaChar = '|' | ) | const |
[取得] 文字列取得.
保持している DNT型文字列の仕切り文字を指定の文字に置き換え、 通常の文字列に変換し返します。
tcSepaChar | 仕切り文字、省略すると '|' になります。 |
TnbDntStr.h の 246 行目に定義があります。
CStrVector ToStrVector | ( | void | ) | const |
[取得] 文字列配列取得.
保持している DNT型文字列を終端で分離し、 CStrVector に変換し返します。
TnbDntStr.h の 223 行目に定義があります。