commit 2025-09-02 12:47 delete template<typename TSearchInfoList> ZCStringBase& ReplaceType in ZCppMain/ZtCStringEx.H

This commit is contained in:
2025-09-02 12:47:46 +09:00
parent 7f32a3298a
commit 660a66c58b

View File

@ -514,6 +514,7 @@ namespace ZNsMain
}/*
~ZtCStringBase()*/
TypeLength GetAllLength () const{return ml_AllLen ;}
TypeLength GetUseLength () const{return ml_UseLen ;}
TypeLength GetNotUseLength() const{return ml_AllLen-ml_UseLen;}
@ -521,6 +522,7 @@ namespace ZNsMain
TypeChar* GetChars() {return mpc_Data;}
TypeCharC* GetChars() const{return mpc_Data;}
bool IsAnsi() const
{
return ZCTypeChars::IsAnsiChars(mpc_Data, ml_UseLen);
@ -1774,162 +1776,6 @@ namespace ZNsMain
/*#############################################################################*/
template<typename TSearchInfoList> ZCStringBase& ReplaceType
(
TypeCharC* APC_Search , TypeCharC* APC_Replace ,
TypeLength AL_SearchLen , TypeLength AL_ReplaceLen,
TypeLength AL_StartPos=0
)
/*########################################################*/
{
// 내부 연결리스트로 TSearchInfoList 를 사용한다.
if(ml_UseLen<1) return *this;
TSearchInfoList VO_CSearchInfoList; MakeInfoList
(
APC_Search , AL_SearchLen,
AL_StartPos, RR(VO_CSearchInfoList)
);
////////////////////////////////////////////////
TypeLength VL_InfoEntrySize =
VO_CSearchInfoList.GetSize() ;
if(VL_InfoEntrySize<1) return *this ;
TypeLength VL_PrevSize = ml_UseLen ;
TypeLength VL_NewSize = 0 ;
IterEasyID VI_IterEasyID =
VO_CSearchInfoList.GetHeadIterEasyID();
VL_NewSize = ml_UseLen +
VL_InfoEntrySize * (AL_ReplaceLen-AL_SearchLen);
if(VL_NewSize>VL_PrevSize) ReAllocKeep(VL_NewSize);
TypeChar* VP_Origin=mpc_Data;
TypeLength VL_Index =0 ;
// AL_ReplaceLen==AL_SearchLen 나
// AL_ReplaceLen> AL_SearchLen 나
// AL_ReplaceLen< AL_SearchLen 각 경우에
// Replace 방식이 조금 틀리다.
if(AL_ReplaceLen==AL_SearchLen)
{
for(TypeLength i=0; i<VL_InfoEntrySize; ++i)
{
VL_Index=VO_CSearchInfoList.ItD(VI_IterEasyID).ml_Pos ;
for(TypeLength j=0; j<AL_ReplaceLen; ++j)
{ VP_Origin[VL_Index+j]=APC_Replace[j]; }
VO_CSearchInfoList.MoveNextIter(VI_IterEasyID);
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
}
else if(AL_ReplaceLen<AL_SearchLen)
{
VL_Index=VO_CSearchInfoList.GetHeadData().ml_Pos;
for(TypeLength i=1;i<=VL_InfoEntrySize;++i)
{
for(TypeLength j=0; j<AL_ReplaceLen; ++j)
{
VP_Origin[VL_Index++]=APC_Replace[j] ;
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
if(i!=VL_InfoEntrySize)
{
// 마지막 링크가 아닐 경우
TypeLength VL_IndexHead=VO_CSearchInfoList.ItD(VI_IterEasyID ).ml_Pos+AL_SearchLen;
TypeLength VL_IndexTail=VO_CSearchInfoList.ItD(VI_IterEasyID, 1).ml_Pos-1;
for(TypeLength k=VL_IndexHead; k<=VL_IndexTail; ++k)
{
VP_Origin[VL_Index++] = VP_Origin[k] ;
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
}
else // i==VL_InfoEntrySize
{
TypeLength VL_IndexTail=VL_PrevSize-1 ;
TypeLength VL_IndexHead=VO_CSearchInfoList.
ItD(VI_IterEasyID).ml_Pos + AL_SearchLen ;
for(TypeLength k=VL_IndexHead; k<=VL_IndexTail; ++k)
{
VP_Origin[VL_Index++] = VP_Origin[k] ;
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
}/*
else // i==VL_InfoEntrySize*/
VO_CSearchInfoList.MoveNextIter(VI_IterEasyID);
}/*
for(TypeLength i=1; i<=VL_InfoEntrySize; ++i)*/
}
else // AL_ReplaceLen>AL_SearchLen
{
// 뒤부터 채워 나간다.
VP_Origin[VL_NewSize]=0;
VL_Index = VL_NewSize-1 ;
VI_IterEasyID =
VO_CSearchInfoList.GetTailIterEasyID();
TypeLength VL_IndexTail=VL_PrevSize-1;
TypeLength VL_IndexHead=VO_CSearchInfoList.
ItD(VI_IterEasyID).ml_Pos + AL_SearchLen ;
for(TypeLength i=VL_IndexTail; i>=VL_IndexHead; --i)
{
VP_Origin[VL_Index--]=VP_Origin[i];
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
for(TypeLength j=VL_InfoEntrySize; j>=2; --j)
{
TypeLength k;
for(k=AL_ReplaceLen-1; k>=0; --k)
{
VP_Origin[VL_Index--] = APC_Replace[k];
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
VL_IndexHead=VO_CSearchInfoList.ItD(VI_IterEasyID, -1).ml_Pos+AL_SearchLen;
VL_IndexTail=VO_CSearchInfoList.ItD(VI_IterEasyID ).ml_Pos-1 ;
for(k=VL_IndexTail; k>=VL_IndexHead; --k)
{ VP_Origin[VL_Index--]=VP_Origin[k]; }
VO_CSearchInfoList.MovePrevIter(VI_IterEasyID);
}/*
for(TypeLength j=VL_InfoEntrySize; j>=2; --j)*/
for(TypeLength k=AL_ReplaceLen-1; k>=0 ;--k)
{
VP_Origin[VL_Index--]=APC_Replace[k];
}/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
}/*
else // AL_ReplaceLen>AL_SearchLen*/
VP_Origin[ml_UseLen=VL_NewSize]=0; return *this;
}/*
tempalte<typename TSearchInfoList> ZCStringBase& ReplaceType
(
TypeCharC* APC_Search , TypeCharC* APC_Replace ,
TypeLength AL_SearchLen , TypeLength AL_ReplaceLen,
TypeLength AL_StartPos=0
)
###########################################################*/
ZCStringBase& Replace
(
TypeCharC* APC_Search, TypeCharC* APC_Replace, TypeLength AL_StartPos=0
@ -1952,27 +1798,6 @@ namespace ZNsMain
)
///////////////////*/
template<typename TSearchInfoList> ZCStringBase& ReplaceType
(
TypeCharC* APC_Search, TypeCharC* APC_Replace, TypeLength AL_StartPos=0
)
////////////////////////////////////////////////////////////
{
return ReplaceType<TSearchInfoList>
(
APC_Search ,
APC_Replace ,
GetLength(APC_Search) ,
GetLength(APC_Replace),
AL_StartPos
);
///////////////////////////////////
}/*
template<typename TSearchInfoList> ZCStringBase& ReplaceType
(
TypeCharC* APC_Search, TypeCharC* APC_Replace, TypeLength AL_StartPos=0
)
//////////////////////////////////////////////////////////*/
ZCStringBase& Replace /*#######################################################*/
(
@ -1998,31 +1823,6 @@ namespace ZNsMain
/*#############################################################################*/
template<typename TSearchInfoList> ZCStringBase& ReplaceType /*################*/
(
const ZCStringBase& AR_CStrSearch ,
const ZCStringBase& AR_CStrReplace,
TypeLength AL_StartPos=0
)
/*#############################################################################*/
{
return ReplaceType<TSearchInfoList>( ///////
AR_CStrSearch. data(),
AR_CStrReplace.data(),
AR_CStrSearch. size(),
AR_CStrReplace.size(),
AL_StartPos
/*/////////*/ ); ///////////////////////////
}/*
template<typename TSearchInfoList> ZCStringBase& ReplaceType ####################
(
const ZCStringBase& AR_CStrSearch ,
const ZCStringBase& AR_CStrReplace,
TypeLength AL_StartPos=0
)
/*#############################################################################*/
static ZCStringBase& ReplaceSection /*#########################################*/
(
ZCStringBase& ARR_Saver ,