commit 2025-08-19 21:19 edit a bit ZCppMain/ZtCStringEx.H

This commit is contained in:
2025-08-19 21:19:09 +09:00
parent e8cf6460cb
commit 4a076cb1d8

View File

@ -3503,7 +3503,7 @@ namespace ZNsMain
) )
/*################################################################*/ /*################################################################*/
{ {
typedef typename TSplitList::TypeData CString; TSplitList VO_CStringList; typedef typename TSplitList::TypeData ZCString; TSplitList VO_CStringList;
/*///////////////////////////////////////////////////////////////////////////////////// /*/////////////////////////////////////////////////////////////////////////////////////
@ -3546,12 +3546,12 @@ namespace ZNsMain
if(VL_Index>VL_CopyStartPos) if(VL_Index>VL_CopyStartPos)
{ {
((CString&)VO_CStringList).append ((ZCString&)VO_CStringList).append
( (
APC_OriginChar+VL_CopyStartPos, APC_OriginChar+VL_CopyStartPos,
VL_Index -VL_CopyStartPos VL_Index -VL_CopyStartPos
) ; ) ;
///////////////////////////////// //////////////////////////////////
}/* }/*
if(VL_Index>VL_CopyStartPos)*/ if(VL_Index>VL_CopyStartPos)*/
@ -3634,7 +3634,7 @@ namespace ZNsMain
/* bool AB_DoExecNull 이 true 이면 구분 문자로 잘린 문자열 길이 /* bool AB_DoExecNull 이 true 이면 구분 문자로 잘린 문자열 길이
가 0 인 경우에도 AO_TFunctor 를 수행한다. */ 가 0 인 경우에도 AO_TFunctor 를 수행한다. */
if(AL_OriginLen<1) return; int VL_SearchCount=0; /*####################*/ if(AL_OriginLen<1) return; int VL_SearchCount=0;
if(AL_SearchLen<1) if(AL_SearchLen<1)
{ {
@ -3656,13 +3656,13 @@ namespace ZNsMain
{ {
if(APC_OriginChar[VL_Index+j]!=APC_SearchChar[j]) break; if(APC_OriginChar[VL_Index+j]!=APC_SearchChar[j]) break;
}/* }/*
for(j=0; j<AL_SearchLen; ++j)*/ ///////////////////////////*/
if(j!=AL_SearchLen) // 못찾은 경우 if(j!=AL_SearchLen) // 못찾은 경우
{ {
++VL_Index; continue; ++VL_Index; continue;
}/* }/*
if(j!=AL_SearchLen)*/ /////////////////*/
// 찾은 경우 // 찾은 경우
@ -3775,7 +3775,7 @@ namespace ZNsMain
/////////////////////////////////////////////////////////////////////*/ /////////////////////////////////////////////////////////////////////*/
typedef typename TStringList::TypeData CString; typedef typename TStringList::TypeData ZCString;
if(AL_OriginLen<1) return ARR_SaveList; if(AL_OriginLen<1) return ARR_SaveList;
@ -3807,25 +3807,25 @@ namespace ZNsMain
{ {
if(AB_DoAppendEachLink==true) if(AB_DoAppendEachLink==true)
{ {
((CString&)ARR_SaveList).append ((ZCString&)ARR_SaveList).append
( (
APC_OriginChar+VL_CopyStartPos, VL_Index-VL_CopyStartPos APC_OriginChar+VL_CopyStartPos, VL_Index-VL_CopyStartPos
) ; ) ;
/////////////////////////////// ////////////////////////////////
} }
else else
{ {
((CString&)ARR_SaveList).Invalidate().append ((ZCString&)ARR_SaveList).Invalidate().append
( (
APC_OriginChar+VL_CopyStartPos, VL_Index-VL_CopyStartPos APC_OriginChar+VL_CopyStartPos, VL_Index-VL_CopyStartPos
) ; ) ;
//////////////////////////////////////////// /////////////////////////////////////////////
}/* }/*
else*/ else*/
} }
else if(AB_DoAppendEmpty==true) else if(AB_DoAppendEmpty==true)
{ {
(CString&)ARR_SaveList; (ZCString&)ARR_SaveList;
}/* }/*
else if(AB_DoAppendEmpty==true)*/ else if(AB_DoAppendEmpty==true)*/
@ -4052,7 +4052,7 @@ namespace ZNsMain
{ {
// ARR_SaveList 의 각 원소들은 문자열 object 이어야 한다. // ARR_SaveList 의 각 원소들은 문자열 object 이어야 한다.
typedef typename TSaveList::TypeData CString; typedef typename TSaveList::TypeData ZCString;
if(AL_OriginLen<1 || AL_SearchLen<1) return ARR_SaveList; if(AL_OriginLen<1 || AL_SearchLen<1) return ARR_SaveList;
@ -4062,7 +4062,7 @@ namespace ZNsMain
TypeLength VL_Loop =AL_OriginLen-AL_SearchLen; TypeLength VL_Loop =AL_OriginLen-AL_SearchLen;
TypeLength VL_Index =0 ; TypeLength VL_Index =0 ;
CString VO_CStringTemp ; ZCString VO_CStringTemp ;
while(VL_Index<=VL_Loop) while(VL_Index<=VL_Loop)
{ {
@ -4267,7 +4267,7 @@ namespace ZNsMain
// APC_SearchChar이 가리키는 각 문자들 중 하나라도 만족하면 // APC_SearchChar이 가리키는 각 문자들 중 하나라도 만족하면
// 그 문자로 분리해서 ARR_SaveList 에 저장한다. // 그 문자로 분리해서 ARR_SaveList 에 저장한다.
typedef typename TStringList::TypeData CString; typedef typename TStringList::TypeData ZCString;
if(AL_OriginLen<1 || AL_SearchLen<1) return ARR_SaveList; if(AL_OriginLen<1 || AL_SearchLen<1) return ARR_SaveList;
@ -4290,7 +4290,7 @@ namespace ZNsMain
{ {
if(i>VL_CopyStartPos) if(i>VL_CopyStartPos)
{ {
((CString&)ARR_SaveList).append ((ZCString&)ARR_SaveList).append
( VP_CopyStartChar, i-VL_CopyStartPos ) ; ( VP_CopyStartChar, i-VL_CopyStartPos ) ;
}/* }/*
if(i>VL_CopyStartPos)*/ if(i>VL_CopyStartPos)*/
@ -4304,7 +4304,7 @@ namespace ZNsMain
if(VL_CopyStartPos<AL_OriginLen) if(VL_CopyStartPos<AL_OriginLen)
{ {
((CString&)ARR_SaveList).append ((ZCString&)ARR_SaveList).append
(VP_CopyStartChar, AL_OriginLen-VL_CopyStartPos) ; (VP_CopyStartChar, AL_OriginLen-VL_CopyStartPos) ;
}/* }/*
if(VL_CopyStartPos<AL_OriginLen)*/ if(VL_CopyStartPos<AL_OriginLen)*/
@ -4828,7 +4828,7 @@ namespace ZNsMain
같으면 임시 object 가 생성디는 문제가 있어서 STL 과 호환되게 하지는 않고 같으면 임시 object 가 생성디는 문제가 있어서 STL 과 호환되게 하지는 않고
있다. */ 있다. */
typedef typename TypeList::TypeData CString; typedef typename TypeList::TypeData ZCString;
if(AL_OriginLen<1 || AL_Search1Len<1 || AL_Search2Len<1) if(AL_OriginLen<1 || AL_Search1Len<1 || AL_Search2Len<1)
{ {
@ -4854,12 +4854,12 @@ namespace ZNsMain
if(AB_DoIncludeSearch==true) if(AB_DoIncludeSearch==true)
{ {
((CString&)ARR_SaveList).Invalidate().append( ((ZCString&)ARR_SaveList).Invalidate().append(
APC_OriginChar+VL_Pos1 , VL_Pos2-VL_Pos1+AL_Search2Len) ; APC_OriginChar+VL_Pos1 , VL_Pos2-VL_Pos1+AL_Search2Len) ;
} }
else if(VL_Pos2>VL_Pos1+AL_Search1Len) // AB_DoIncludeSearch==false else if(VL_Pos2>VL_Pos1+AL_Search1Len) // AB_DoIncludeSearch==false
{ {
((CString&)ARR_SaveList).Invalidate().append( ((ZCString&)ARR_SaveList).Invalidate().append(
APC_OriginChar+VL_Pos1+AL_Search1Len, VL_Pos2-VL_Pos1-AL_Search1Len) ; APC_OriginChar+VL_Pos1+AL_Search1Len, VL_Pos2-VL_Pos1-AL_Search1Len) ;
// APC_Search1Char 와 APC_Search2Char 사이에 문자열이 하나 이상 있어야 한다. // APC_Search1Char 와 APC_Search2Char 사이에 문자열이 하나 이상 있어야 한다.
@ -8286,13 +8286,13 @@ namespace ZNsMain
/*//////////*/ ) /*//////////*/ )
{ {
#ifdef _DEBUG_FAST_MOVE_OBJ_ #ifdef _DEBUG_FAST_MOVE_OBJ_
cout<<" ▶▶ __FastMoveObj(CString&, CString&) Start!"<<endl; cout<<" ▶▶ __FastMoveObj(ZCString&, ZCString&) Start!"<<endl;
#endif //_DEBUG_FAST_MOVE_OBJ_ #endif //_DEBUG_FAST_MOVE_OBJ_
AR_CString1.Fetch(AR_CString2); AR_CString1.Fetch(AR_CString2);
#ifdef _DEBUG_FAST_MOVE_OBJ_ #ifdef _DEBUG_FAST_MOVE_OBJ_
cout<<" ▶▶ __FastMoveObj(CString&, CString&) Close!"<<endl; cout<<" ▶▶ __FastMoveObj(ZCString&, ZCString&) Close!"<<endl;
#endif //_DEBUG_FAST_MOVE_OBJ_ #endif //_DEBUG_FAST_MOVE_OBJ_
}/* }/*
template<typename TTypCh, typename TAlloc, typename TAllocSize, typename TTypeString> template<typename TTypCh, typename TAlloc, typename TAllocSize, typename TTypeString>
@ -8311,13 +8311,13 @@ namespace ZNsMain
typedef ZNsMain::ZtCStringBase<TTypCh, TAlloc, TAllocSize, TTypeString> CStringType; typedef ZNsMain::ZtCStringBase<TTypCh, TAlloc, TAllocSize, TTypeString> CStringType;
#ifdef _DEBUG_FAST_MOVE_OBJ_ #ifdef _DEBUG_FAST_MOVE_OBJ_
cout<<" ▶▶ __FastMoveObj(CString&, const CString&) Start!"<<endl; cout<<" ▶▶ __FastMoveObj(ZCString&, const ZCString&) Start!"<<endl;
#endif //_DEBUG_FAST_MOVE_OBJ_ #endif //_DEBUG_FAST_MOVE_OBJ_
AR_CString1.Fetch(const_cast<CStringType&>(AR_CString2)); AR_CString1.Fetch(const_cast<CStringType&>(AR_CString2));
#ifdef _DEBUG_FAST_MOVE_OBJ_ #ifdef _DEBUG_FAST_MOVE_OBJ_
cout<<" ▶▶ __FastMoveObj(CString&, const CString&) Close!"<<endl; cout<<" ▶▶ __FastMoveObj(ZCString&, const ZCString&) Close!"<<endl;
#endif //_DEBUG_FAST_MOVE_OBJ_ #endif //_DEBUG_FAST_MOVE_OBJ_
}/* }/*
template<typename TTypCh, typename TAlloc, typename TAllocSize, typename TTypeString> template<typename TTypCh, typename TAlloc, typename TAllocSize, typename TTypeString>