commit 2025-08-24 00:58 edit a bit ZCppMain/ZtCMainChars.H

This commit is contained in:
2025-08-24 00:58:41 +09:00
parent 0c436c267f
commit dc87b4023a

View File

@ -2383,7 +2383,7 @@ namespace ZNsMain
if(VL_MatchLen>0) ARR_CStrReadyBuff.append if(VL_MatchLen>0) ARR_CStrReadyBuff.append
(VO_CCharsOrigin.data()+ARRL_ValidLen, VL_MatchLen); (VO_CCharsOrigin.data()+ARRL_ValidLen, VL_MatchLen);
return false; return false; //////
}/* }/*
if(VL_ReadyBuffSize+AR_CCharsOrigin.size()<AR_CCharsSearch.size())*/ if(VL_ReadyBuffSize+AR_CCharsOrigin.size()<AR_CCharsSearch.size())*/
@ -2540,13 +2540,15 @@ namespace ZNsMain
//////////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////////*/
static TypeLength GetStartLength( //////////////////////////////// static TypeLength GetStartLength /*#############################*/
(
TypeCharC* APC_Origin , TypeCharC* APC_Origin ,
TypeCharC* APC_Search , TypeCharC* APC_Search ,
TypeLength AL_OriginLen, TypeLength AL_OriginLen,
TypeLength AL_SearchLen, TypeLength AL_SearchLen,
TypeLength AL_SearchOffset=0 TypeLength AL_SearchOffset=0
/*//////////*/ ) ///////////////////////////////////////////////*/ )
/*##############################################################*/
{ {
const bool CB_IsBad = const bool CB_IsBad =
(AL_OriginLen<1 || AL_SearchLen<1 || AL_SearchLen-AL_SearchOffset<1) ; (AL_OriginLen<1 || AL_SearchLen<1 || AL_SearchLen-AL_SearchOffset<1) ;
@ -2555,30 +2557,36 @@ namespace ZNsMain
if(AL_OriginLen<AL_SearchLen-AL_SearchOffset) if(AL_OriginLen<AL_SearchLen-AL_SearchOffset)
{ {
const bool CB_IsOK=ZtCMainChars::DoStart( const bool CB_IsOK = ZtCMainChars::DoStart
(
APC_Origin, APC_Search+AL_SearchOffset, APC_Origin, APC_Search+AL_SearchOffset,
AL_OriginLen, AL_OriginLen AL_OriginLen, AL_OriginLen
/*/////////*/ ); );
//////////////////////////////////////////
if(CB_IsOK==false) return 0; return AL_OriginLen; if(CB_IsOK==false) return 0; return AL_OriginLen;
}/* }/*
if(AL_OriginLen<AL_SearchLen-AL_SearchOffset)*/ if(AL_OriginLen<AL_SearchLen-AL_SearchOffset)*/
const bool CB_IsOK=ZtCMainChars::DoStart( const bool CB_IsOK = ZtCMainChars::DoStart
(
APC_Origin, APC_Search +AL_SearchOffset, APC_Origin, APC_Search +AL_SearchOffset,
AL_OriginLen, AL_SearchLen-AL_SearchOffset AL_OriginLen, AL_SearchLen-AL_SearchOffset
/*/////////*/ ); );
//////////////////////////////////////////
if(CB_IsOK==false) return 0; return AL_SearchLen-AL_SearchOffset; if(CB_IsOK==false) return 0; return AL_SearchLen-AL_SearchOffset;
}/* }/*
TypeLength GetStartLength( /////////////////////////////////////// TypeLength GetStartLength ########################################
(
TypeCharC* APC_Origin , TypeCharC* APC_Origin ,
TypeCharC* APC_Search , TypeCharC* APC_Search ,
TypeLength AL_OriginLen, TypeLength AL_OriginLen,
TypeLength AL_SearchLen, TypeLength AL_SearchLen,
TypeLength AL_SearchOffset=0 TypeLength AL_SearchOffset=0
////////////// ) ///////////////////////////////////////////////*/ )
/*##############################################################*/
template<typename TTyChars> static TypeLength GetStartLength( template<typename TTyChars> static TypeLength GetStartLength(
const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch, TypeLength AL_SearchOffset=0) const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch, TypeLength AL_SearchOffset=0)
@ -2607,7 +2615,8 @@ namespace ZNsMain
{ {
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor) ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
(APC_OriginChar, AL_OriginLen, ++VI_SearchCount); (APC_OriginChar, AL_OriginLen, ++VI_SearchCount);
return;
return; ////////////////////////////////////
}/* }/*
if(AL_SearchLen<1)*/ if(AL_SearchLen<1)*/
@ -2938,8 +2947,8 @@ namespace ZNsMain
if(AL_OriginLen<1 || AL_OriginLen<AL_SearchLen) if(AL_OriginLen<1 || AL_OriginLen<AL_SearchLen)
{ {
return ARR_SaveList; return ARR_SaveList;
}/* }
if(AL_OriginLen<1 || AL_OriginLen<AL_SearchLen)*/ /*///////////////////////////////////////////*/
TypeLength VL_PrevSize =ARR_SaveList.size(); TypeLength VL_PrevSize =ARR_SaveList.size();
TypeLength VL_SearchPos=0; TypeLength VL_SearchPos=0;
@ -2949,12 +2958,17 @@ namespace ZNsMain
while(VL_SearchPos<AL_OriginLen) while(VL_SearchPos<AL_OriginLen)
{ {
VL_SearchLen += ZtCMainChars::GetWrapLen( VL_SearchLen += ZtCMainChars::GetWrapLen
(
APC_OriginChar+VL_SearchPos, APC_WrapStart , APC_WrapClose, APC_OriginChar+VL_SearchPos, APC_WrapStart , APC_WrapClose,
AL_OriginLen -VL_SearchPos, AL_WrapStartLen, AL_WrapCloseLen ); AL_OriginLen -VL_SearchPos, AL_WrapStartLen, AL_WrapCloseLen
VL_FindPos = ZtCMainChars::FindPos ( );
VL_FindPos = ZtCMainChars::FindPos
(
APC_OriginChar, APC_SearchChar, AL_OriginLen, APC_OriginChar, APC_SearchChar, AL_OriginLen,
AL_SearchLen , VL_SearchPos+VL_SearchLen ) ; AL_SearchLen , VL_SearchPos+VL_SearchLen
) ;
/////////////////////////////////////////////////////
if(VL_FindPos<1) if(VL_FindPos<1)
{ {
@ -3062,7 +3076,8 @@ namespace ZNsMain
TStringArray& ARA_SearchArray TStringArray& ARA_SearchArray
/*//////////*/ ) ///////////////////////////////////////////////*/ /*//////////*/ ) ///////////////////////////////////////////////*/
{ {
typedef typename TStringList::TypeData CStringData; typedef typename
TStringList::TypeData CStringData;
CStringData* VP_CStringStart=0; CStringData* VP_CStringStart=0;
@ -3072,7 +3087,8 @@ namespace ZNsMain
while(VL_SearchPos<AL_OriginLen) while(VL_SearchPos<AL_OriginLen)
{ {
VL_FindPos=ZtCMainChars::FindPosEscWrap( VL_FindPos = ZtCMainChars::FindPosEscWrap
(
APC_Origin+VL_SearchPos , APC_Origin+VL_SearchPos ,
APC_Escape , APC_Escape ,
APC_WrapStart , APC_WrapStart ,
@ -3083,7 +3099,8 @@ namespace ZNsMain
AL_WrapCloseLen , AL_WrapCloseLen ,
ARA_SearchArray , ARA_SearchArray ,
RR(VP_CStringStart) RR(VP_CStringStart)
/*/////////*/ ); );
/////////////////////////////////////////
if(VL_FindPos<0) if(VL_FindPos<0)
{ {
@ -3105,7 +3122,7 @@ namespace ZNsMain
}/* }/*
if(VL_FindPos>0)*/ if(VL_FindPos>0)*/
VL_SearchPos+=VL_FindPos+VP_CStringStart->size(); VL_SearchPos += VL_FindPos + VP_CStringStart->size();
}/* }/*
while(VL_SearchPos<AL_OriginLen)*/ while(VL_SearchPos<AL_OriginLen)*/
@ -3353,8 +3370,8 @@ namespace ZNsMain
for(j=0; j<AL_SearchLen; ++j) for(j=0; j<AL_SearchLen; ++j)
{ {
if(*VP_Left++ != *VP_Right++) break; if(*VP_Left++ != *VP_Right++) break;
}/* }
for(j=0; j<AL_SearchLen; ++j)*/ /*/////////////////////////*/
if(j>=AL_SearchLen) return i+AL_SearchLen; if(j>=AL_SearchLen) return i+AL_SearchLen;
@ -3397,11 +3414,13 @@ namespace ZNsMain
for(TypeLength i=0; i<VL_ArrSize; ++i) for(TypeLength i=0; i<VL_ArrSize; ++i)
{ {
VL_NowSize=ZtCMainChars::GetLength_Find( VL_NowSize = ZtCMainChars::GetLength_Find
(
APC_Origin, AL_OriginLen, APC_Origin, AL_OriginLen,
ARA_SearchArray.ItD(CI_IterEasyID).data(), ARA_SearchArray.ItD(CI_IterEasyID).data(),
ARA_SearchArray.ItD(CI_IterEasyID).size() ARA_SearchArray.ItD(CI_IterEasyID).size()
/*/////////*/ ); );
/////////////////////////////////////////
if(VL_NowSize>0) return VL_NowSize; if(VL_NowSize>0) return VL_NowSize;
@ -3434,21 +3453,21 @@ namespace ZNsMain
TypeLength j =0 ; TypeLength j =0 ;
TypeCharC* VP_Origin =APC_Origin; TypeCharC* VP_Origin =APC_Origin;
TypeCharC* VP_Left ; TypeCharC* VP_Left =0 ;
TypeCharC* VP_Right; TypeCharC* VP_Right =0 ;
for(TypeLength i=0; i<AL_OriginLen; ++i) for(TypeLength i=0; i<AL_OriginLen; ++i)
{ {
VP_Left =VP_Origin ; VP_Left = VP_Origin ;
VP_Right=APC_Search; VP_Right = APC_Search ;
// 문자를 찾았으면 찾은 위치 i 에 찾은 문자 길이 1 을 더해서 리턴한다. // 문자를 찾았으면 찾은 위치 i 에 찾은 문자 길이 1 을 더해서 리턴한다.
for(j=0; j<AL_SearchLen; ++j) for(j=0; j<AL_SearchLen; ++j)
{ {
if(*VP_Left++ == *VP_Right++) return i+1; if(*VP_Left++ == *VP_Right++) return i+1;
}/* }
for(j=0; j<AL_SearchLen; ++j)*/ /*/////////////////////////*/
++VP_Origin; ++VP_Origin;
}/* }/*
@ -3486,12 +3505,14 @@ namespace ZNsMain
for(TypeLength i=0; i<VL_ArrSize; ++i) for(TypeLength i=0; i<VL_ArrSize; ++i)
{ {
VL_SumSize += VL_NowSize=ZtCMainChars::GetLength_FindChar( VL_SumSize += VL_NowSize=ZtCMainChars::GetLength_FindChar
(
APC_Origin +VL_SumSize , APC_Origin +VL_SumSize ,
AL_OriginLen-VL_SumSize , AL_OriginLen-VL_SumSize ,
ARA_SearchArray.ItD(CI_IterEasyID).data(), ARA_SearchArray.ItD(CI_IterEasyID).data(),
ARA_SearchArray.ItD(CI_IterEasyID).size() ARA_SearchArray.ItD(CI_IterEasyID).size()
/*/////////*/ ); );
/////////////////////////////////////////////////////////
if(VL_NowSize<1) return 0; if(VL_NowSize<1) return 0;
@ -3745,8 +3766,8 @@ namespace ZNsMain
if(*VP_Origin++ == *VP_Search) if(*VP_Origin++ == *VP_Search)
{ {
++VL_FindCnt; --VL_SearchLen; VL_NowPos=i+1; ++VP_Search; ++VL_FindCnt; --VL_SearchLen; VL_NowPos=i+1; ++VP_Search;
}/* }
if(*VP_Origin++ == *VP_Search)*/ /*//////////////////////////*/
if(VL_SearchLen<1) break; if(VL_SearchLen<1) break;
}/* }/*
@ -3841,12 +3862,12 @@ namespace ZNsMain
IterEasyIDc CI_IterEasyID(ARA_SearchArray.GetHeadIterEasyID()); IterEasyIDc CI_IterEasyID(ARA_SearchArray.GetHeadIterEasyID());
const bool CB_IsOK=ZtCMainChars::DoStart const bool CB_IsOK = ZtCMainChars::DoStart
( (
APC_Origin, ARA_SearchArray.ItD(CI_IterEasyID).data(), APC_Origin, ARA_SearchArray.ItD(CI_IterEasyID).data(),
AL_Length , ARA_SearchArray.ItD(CI_IterEasyID).size() AL_Length , ARA_SearchArray.ItD(CI_IterEasyID).size()
); );
//////////////////////////////////////// //////////////////////////////////////////
if(!CB_IsOK) return 0; if(!CB_IsOK) return 0;
@ -3926,8 +3947,8 @@ namespace ZNsMain
if(*VP_Origin++ == *VP_Search) if(*VP_Origin++ == *VP_Search)
{ {
++VL_FindCnt; --VL_SearchLen; VL_NowPos=i+1; ++VP_Search; ++VL_FindCnt; --VL_SearchLen; VL_NowPos=i+1; ++VP_Search;
}/* }
if(*VP_Origin++ == *VP_Search)*/ /*//////////////////////////*/
if(VL_SearchLen<1) break; if(VL_SearchLen<1) break;
}/* }/*
@ -4012,12 +4033,12 @@ namespace ZNsMain
for(TypeLength i=0; i<VL_ArrSize; ++i) for(TypeLength i=0; i<VL_ArrSize; ++i)
{ {
const bool CB_IsOK=ZtCMainChars::DoStart const bool CB_IsOK = ZtCMainChars::DoStart
( (
APC_Origin, ARA_SearchArray.ItD(CI_IterEasyID).data(), APC_Origin, ARA_SearchArray.ItD(CI_IterEasyID).data(),
AL_Length , ARA_SearchArray.ItD(CI_IterEasyID).size() AL_Length , ARA_SearchArray.ItD(CI_IterEasyID).size()
); );
//////////////////////////////////////// //////////////////////////////////////////
if(CB_IsOK) return if(CB_IsOK) return
ARA_SearchArray.ItD(CI_IterEasyID).size() ; ARA_SearchArray.ItD(CI_IterEasyID).size() ;
@ -4151,8 +4172,8 @@ namespace ZNsMain
if(*VPC_Origin== *VPC_Permit++) if(*VPC_Origin== *VPC_Permit++)
{ {
++VL_SearchLen; break; ++VL_SearchLen; break;
}/* }
if(*VPC_Origin== *VPC_Permit++)*/ /*///////////////////////////*/
}/* }/*
for(; j<AL_PermitLength; ++j)*/ for(; j<AL_PermitLength; ++j)*/
@ -4209,8 +4230,8 @@ namespace ZNsMain
if(*VPC_Origin>=*VPC_Permit && *VPC_Origin<=*(VPC_Permit+1)) if(*VPC_Origin>=*VPC_Permit && *VPC_Origin<=*(VPC_Permit+1))
{ {
++VL_SearchLen; break; ++VL_SearchLen; break;
}/* }
if(*VPC_Origin>=*VPC_Permit && *VPC_Origin<=*(VPC_Permit+1))*/ /*////////////////////////////////////////////////////////*/
VPC_Permit+=2; VPC_Permit+=2;
}/* }/*
@ -4266,7 +4287,9 @@ namespace ZNsMain
); );
////////////////////////////////////// //////////////////////////////////////
if(VL_SearchNow<1) return 0; VL_SearchSum+=VL_SearchNow; if(VL_SearchNow<1) return 0 ;
VL_SearchSum += VL_SearchNow;
ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID)); ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID));
}/* }/*
@ -4322,7 +4345,10 @@ namespace ZNsMain
); );
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
if(VL_SearchNow<1) return 0; ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID)); if(VL_SearchNow<1) return 0;
ARA_SearchArray.
MoveNextIter( RR(CI_IterEasyID) );
}/* }/*
for(TypeLength i=0; i<VL_ArrSize; ++i)*/ for(TypeLength i=0; i<VL_ArrSize; ++i)*/
@ -4628,8 +4654,8 @@ namespace ZNsMain
if(*VPC_Origin>=*VPC_Permit && *VPC_Origin<=*(VPC_Permit+1)) if(*VPC_Origin>=*VPC_Permit && *VPC_Origin<=*(VPC_Permit+1))
{ {
++VL_SearchLen; break; ++VL_SearchLen; break;
}/* }
if(*VPC_Origin>=*VPC_Permit && *VPC_Origin<=*(VPC_Permit+1))*/ /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
VPC_Permit+=2; VPC_Permit+=2;
}/* }/*
@ -4680,14 +4706,19 @@ namespace ZNsMain
for(TypeLength i=0; i<VL_ArrSize; ++i) for(TypeLength i=0; i<VL_ArrSize; ++i)
{ {
VL_SearchSum += VL_SearchNow=GetLength_NoPermitCharRange( VL_SearchSum += VL_SearchNow = GetLength_NoPermitCharRange
(
APC_Origin+VL_SearchSum , APC_Origin+VL_SearchSum ,
AL_Length -VL_SearchSum , AL_Length -VL_SearchSum ,
ARA_SearchArray.ItD(CI_IterEasyID).data(), ARA_SearchArray.ItD(CI_IterEasyID).data(),
ARA_SearchArray.ItD(CI_IterEasyID).size() ARA_SearchArray.ItD(CI_IterEasyID).size()
/*//////////*/ ); );
//////////////////////////////////////////////////////////
if(VL_SearchNow<1) return 0; ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID)); if(VL_SearchNow<1) return 0;
ARA_SearchArray.
MoveNextIter( RR(CI_IterEasyID) );
}/* }/*
for(TypeLength i=0; i<VL_ArrSize; ++i)*/ for(TypeLength i=0; i<VL_ArrSize; ++i)*/