6 #ifndef _INC_cArrayString_H
7 #define _INC_cArrayString_H
17 template<
typename _TYPE_CH = TCHAR >
34 SetStrings(ppStr, iCount);
53 ASSERT(iCount < k_MaxElements);
63 ASSERT(iCount < k_MaxElements);
73 va_start(vargs, pszFormat);
76 return this->Add(sTmp);
81 for (; *ppszTable !=
nullptr; i++)
84 this->Add(*ppszTable);
85 ppszTable = (
const _TYPE_CH*
const*)(((
const BYTE*)ppszTable) + iElemSize);
99 if (!
StrT::CmpI(this->GetAt(i).get_CPtr(), pszStr))
109 this->AddTail(pszStr);
118 if (!
StrT::CmpI(this->GetAt(i).get_CPtr(), pszFind))
129 if (
StrT::FindStrI(pszSearch, this->GetAt(i).get_CPtr()) !=
nullptr)
137 return (_TYPE_CH**)this->GetData();
141 if (!SUPER_t::IsValidIndex(i))
143 return SUPER_t::GetAt(i);
153 _TYPE_CH* aCmds[128];
155 SetStrings((
const _TYPE_CH**)aCmds, iStrings);
162 if (iMax > this->GetSize())
163 iMax = this->GetSize();
167 sRet += SUPER_t::GetAt(i);
#define GRAYCORE_LINK
Definition: GrayCore.h:47
#define STRMAX(x)
Get Max size of static string space. minus the '\0' terminator character.
Definition: StrConst.h:33
#define ASSERT(exp)
Definition: cDebugAssert.h:87
#define _countof(a)
Definition: cKernel.h:35
void FormatV(const _TYPE_CH *pszStr, va_list args)
Definition: cString.cpp:264
Definition: cArrayString.h:19
ITERATE_t _cdecl AddFormat(const _TYPE_CH *pszFormat,...)
Definition: cArrayString.h:69
ITERATE_t AddUniqueMax(const _TYPE_CH *pszStr, ITERATE_t iMax=k_MaxDefault)
Definition: cArrayString.h:89
_TYPE_CH ** get_PPStr() const
Definition: cArrayString.h:135
cArrayString(const _TYPE_CH **ppStr, ITERATE_t iCount)
Definition: cArrayString.h:32
cArrayString(THIS_t &&ref) noexcept
Definition: cArrayString.h:40
STR_t GetStrSep(_TYPE_CH chSep=',', ITERATE_t iMax=0x7FFF) const
Definition: cArrayString.h:159
ITERATE_t FindCmpI(const _TYPE_CH *pszFind) const
Definition: cArrayString.h:112
cArrayString(const cArrayString &a)
Definition: cArrayString.h:36
void SetStrings(const _TYPE_CH **ppStr, ITERATE_t iCount)
Definition: cArrayString.h:49
void SetStrings(cStringT< _TYPE_CH > *ppStr, ITERATE_t iCount)
Definition: cArrayString.h:59
ITERATE_t AddTable(const _TYPE_CH *const *ppszTable, size_t iElemSize=sizeof(_TYPE_CH *))
Definition: cArrayString.h:78
cArrayString() noexcept
Definition: cArrayString.h:29
ITERATE_t FindStrIR(const _TYPE_CH *pszSearch) const
Definition: cArrayString.h:123
STR_t GetAtCheck(ITERATE_t i) const
Definition: cArrayString.h:139
ITERATE_t SetStrSep(const _TYPE_CH *pszStr, _TYPE_CH chSep=',')
Definition: cArrayString.h:146
~cArrayString()
Definition: cArrayString.h:46
Definition: cString.h:381
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
cArrayString< wchar_t > cArrayStringW
Definition: cArrayString.h:175
int ITERATE_t
like size_t but signed
Definition: Index.h:28
const ITERATE_t k_ITERATE_BAD
Definition: Index.h:30
cArrayString< char > cArrayStringA
Definition: cArrayString.h:174
static const StrLen_t k_LEN_MAX
arbitrary max size for Format() etc. NOTE: _MSC_VER says stack frame should be at least 16384
Definition: StrT.h:75
static bool IsNullOrEmpty(const TYPE *pszStr) noexcept
Definition: StrT.h:102
static __DECL_IMPORT ITERATE_t __stdcall ParseCmdsTmp(TYPE *pszTmp, StrLen_t iTmpSizeMax, const TYPE *pszCmdLine, TYPE **ppCmds, ITERATE_t iCmdQtyMax, const TYPE *pszSep=nullptr, STRP_MASK_t uFlags=STRP_DEF)
static __DECL_IMPORT TYPE *__stdcall FindStrI(const TYPE *pszStr, const TYPE *pszFind, StrLen_t iLenMax=StrT::k_LEN_MAX)
static __DECL_IMPORT COMPARE_t __stdcall CmpI(const TYPE *pszStr1, const TYPE *pszStr2)