commit 2025-08-28 21:36 edit a bit ZCppMain/ZtCMainChars.H

This commit is contained in:
2025-08-28 21:36:52 +09:00
parent 9216c4dca8
commit 00a1672400

View File

@ -581,9 +581,12 @@ namespace ZNsMain
}/* }/*
static int Minus(const ZCChars& AR_CChars1, const ZCChars& AR_CChars2)*/ static int Minus(const ZCChars& AR_CChars1, const ZCChars& AR_CChars2)*/
static int Minus( static int Minus /*#################################################*/
(
const TypeChar* APC_Left , const TypeChar* APC_Right, const TypeChar* APC_Left , const TypeChar* APC_Right,
TypeLength AL_LeftLength, TypeLength AL_RightLength ) TypeLength AL_LeftLength, TypeLength AL_RightLength
)
/*##################################################################*/
{ {
// 두 문자열이 같으면 0 // 두 문자열이 같으면 0
// 왼쪽 문자열이 크면 0 보다 큰 어떤 수 // 왼쪽 문자열이 크면 0 보다 큰 어떤 수
@ -595,12 +598,13 @@ namespace ZNsMain
}/* }/*
if(AL_LeftLength<1 || AL_RightLength<1)*/ if(AL_LeftLength<1 || AL_RightLength<1)*/
const TypeChar* VP_Left =APC_Left ; const TypeChar* VP_Left = APC_Left ;
const TypeChar* VP_Right=APC_Right; const TypeChar* VP_Right= APC_Right ;
TypeLength VL_Index=0; TypeLength VL_Index = 0 ;
TypeLength VL_Loop = TypeLength VL_Loop =
(AL_LeftLength<=AL_RightLength ? AL_LeftLength : AL_RightLength) ; ( AL_LeftLength<=AL_RightLength ?
AL_LeftLength : AL_RightLength ) ;
#if(_CODE_OLD_) #if(_CODE_OLD_)
@ -636,9 +640,12 @@ namespace ZNsMain
return AL_LeftLength-AL_RightLength; return AL_LeftLength-AL_RightLength;
}/* }/*
static int Minus( static int Minus /*###################################################
(
const TypeChar* APC_Left , const TypeChar* APC_Right, const TypeChar* APC_Left , const TypeChar* APC_Right,
TypeLength AL_LeftLength, TypeLength AL_RightLength )*/ TypeLength AL_LeftLength, TypeLength AL_RightLength
)
####################################################################*/
static TypeChar* Trim(TypeChar* APC_Char, TypeLength& ARRL_Length) static TypeChar* Trim(TypeChar* APC_Char, TypeLength& ARRL_Length)
@ -652,13 +659,15 @@ namespace ZNsMain
for(; i<ARRL_Length; ++i) for(; i<ARRL_Length; ++i)
{ {
const bool CB_IsTrue = ( /////////////////////////////////////////// const bool CB_IsTrue = /////////////////////////////
(VC_Char=*VPC_Char++)!=' ' && (
(VC_Char = *VPC_Char++) != ' ' &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\t') && VC_Char!=ZCTypeChars::GetCharOfAnsi('\t') &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\r') && VC_Char!=ZCTypeChars::GetCharOfAnsi('\r') &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\n') && VC_Char!=ZCTypeChars::GetCharOfAnsi('\n') &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\0') VC_Char!=ZCTypeChars::GetCharOfAnsi('\0')
/*/////////*/ ); /////////////////////////////////////////////////// );
////////////////////////////////////////////////////
if(CB_IsTrue) break; if(CB_IsTrue) break;
}/* }/*
@ -684,15 +693,19 @@ namespace ZNsMain
for(i=ARRL_Length-1; i>=0; --i) for(i=ARRL_Length-1; i>=0; --i)
{ {
const bool CB_IsTrue = ( ////////////////////////////////////////// const bool CB_IsTrue = /////////////////////////////
(VC_Char=*VPC_Char--)!=' ' && (
(VC_Char = *VPC_Char--) != ' ' &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\t') && VC_Char!=ZCTypeChars::GetCharOfAnsi('\t') &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\r') && VC_Char!=ZCTypeChars::GetCharOfAnsi('\r') &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\n') && VC_Char!=ZCTypeChars::GetCharOfAnsi('\n') &&
VC_Char!=ZCTypeChars::GetCharOfAnsi('\0') VC_Char!=ZCTypeChars::GetCharOfAnsi('\0')
/*/////////*/ ); ////////////////////////////////////////////////// );
////////////////////////////////////////////////////
if(CB_IsTrue) break; APC_Char[--ARRL_Length] = ZCTypeChars::GetCharOfAnsi('\0'); if(CB_IsTrue) break;
APC_Char[--ARRL_Length] = ZCTypeChars::GetCharOfAnsi('\0');
}/* }/*
for(i=ARRL_Length-1; i>=0; --i)*/ for(i=ARRL_Length-1; i>=0; --i)*/
@ -716,10 +729,12 @@ namespace ZNsMain
__for1(TypeLength, i, VL_ArrSize) __for1(TypeLength, i, VL_ArrSize)
{ {
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_OriginLength, ARA_SearchArray.ItD(CI_IterEasyID).size() AL_OriginLength, ARA_SearchArray.ItD(CI_IterEasyID).size()
/*//////////*/ ); );
/*:::::::::::::::::::::::::::::::::::::*/
if(CB_IsOK) return i; ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID)); if(CB_IsOK) return i; ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID));
}/* }/*
@ -757,10 +772,12 @@ namespace ZNsMain
for(TypeLength i=1; i<=VL_ArrSize; ++i) for(TypeLength i=1; 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_OriginLength, ARA_SearchArray.ItD(CI_IterEasyID).size() AL_OriginLength, ARA_SearchArray.ItD(CI_IterEasyID).size()
/*//////////*/ ); );
/*::::::::::::::::::::::::::::::::::::::*/
if(CB_IsOK) if(CB_IsOK)
{ {
@ -953,7 +970,7 @@ namespace ZNsMain
if(CB_IsBad) return -1; if(CB_IsBad) return -1;
TypeLength VL_Loop=AL_OriginLength-AL_SearchLength; TypeLength VL_Loop=AL_OriginLength-AL_SearchLength;
TypeLength i =AL_StartPos; TypeLength i =AL_StartPos ;
TypeLength j =0 ; TypeLength j =0 ;
/*////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////
@ -1056,8 +1073,8 @@ namespace ZNsMain
if(APC_Origin[i+j] != APC_Search[j]) if(APC_Origin[i+j] != APC_Search[j])
{ {
VL_MatchLen=0; break; VL_MatchLen=0; break;
}/* }
//////////////////////////////////*/ /*::::::::::::::::::::::::::::::::*/
++VL_MatchLen; ++VL_MatchLen;
}/* }/*
@ -1093,7 +1110,7 @@ namespace ZNsMain
( (
APC_Origin, APC_Search, AL_OriginLen, AL_SearchLen, AL_StartPos APC_Origin, APC_Search, AL_OriginLen, AL_SearchLen, AL_StartPos
); );
/////////////////////////////////////////////// /*:::::::::::::::::::::::::::::::::::::::::::*/
const bool CB_IsBad = ///////////////////////// const bool CB_IsBad = /////////////////////////
( (
@ -1206,16 +1223,19 @@ namespace ZNsMain
if(CB_IsBad) return -1; if(CB_IsBad) return -1;
const bool CB_DoStart = ZtCMainChars::DoStart( const bool CB_DoStart = ZtCMainChars::DoStart
(
APC_Origin+AL_StartPos , APC_Origin+AL_StartPos ,
APC_WrapStart , APC_WrapStart ,
AL_OriginLen-AL_StartPos, AL_OriginLen-AL_StartPos,
AL_WrapStartLen AL_WrapStartLen
/*//////////*/ ); //////////////////////////// );
/*:::::::::::::::::::::::::::::::::::::::::*/
if(CB_DoStart) if(CB_DoStart)
{ {
TypeLength VL_WrapClosePos = ZtCMainChars::FindPosEsc( TypeLength VL_WrapClosePos = ZtCMainChars::FindPosEsc
(
APC_Origin , APC_Origin ,
APC_WrapClose , APC_WrapClose ,
APC_Escape , APC_Escape ,
@ -1223,21 +1243,24 @@ namespace ZNsMain
AL_WrapCloseLen , AL_WrapCloseLen ,
AL_EscapeLen , AL_EscapeLen ,
AL_StartPos+AL_WrapStartLen AL_StartPos+AL_WrapStartLen
/*/////////*/ ); ///////////////////////////////////// );
/*:::::::::::::::::::::::::::::::::::::::::::::::::*/
if(VL_WrapClosePos<0) return -1; if(VL_WrapClosePos<0) return -1;
// 종료 태그(APC_Close)를 찾았으면 바로 다음에 APC_Search 가 시작되는지 조사한다. // 종료 태그(APC_Close)를 찾았으면 바로 다음에 APC_Search 가 시작되는지 조사한다.
const bool CB_DoStart2 = ZtCMainChars::DoStart( const bool CB_DoStart2 = ZtCMainChars::DoStart
APC_Origin +VL_WrapClosePos+AL_WrapCloseLen, (
APC_Search , APC_Origin +VL_WrapClosePos+AL_WrapCloseLen, APC_Search ,
AL_OriginLen-VL_WrapClosePos-AL_WrapCloseLen, AL_OriginLen-VL_WrapClosePos-AL_WrapCloseLen, AL_SearchLen
AL_SearchLen );
/*//////////*/ ); /////////////////////////////////////////// /*::::::::::::::::::::::::::::::::::::::::::*/
if(CB_DoStart2==false) return -1; return VL_WrapClosePos+AL_WrapCloseLen; if(CB_DoStart2==false) return -1 ;
return VL_WrapClosePos+AL_WrapCloseLen;
}/* }/*
if(CB_DoStart) */ if(CB_DoStart) */
@ -1331,7 +1354,7 @@ namespace ZNsMain
if(ZtCMainChars::DoStart(APC_Origin, APC_WrapStart, AL_OriginLen, AL_WrapStartLen)==true) if(ZtCMainChars::DoStart(APC_Origin, APC_WrapStart, AL_OriginLen, AL_WrapStartLen)==true)
{ {
TypeLength VL_FindPos=ZtCMainChars::FindPosEsc( TypeLength VL_FindPos = ZtCMainChars::FindPosEsc(
APC_Origin , APC_Origin ,
APC_WrapClose , APC_WrapClose ,
APC_Escape , APC_Escape ,
@ -1339,17 +1362,19 @@ namespace ZNsMain
AL_WrapCloseLen , AL_WrapCloseLen ,
AL_EscapeLen , AL_EscapeLen ,
AL_WrapStartLen AL_WrapStartLen
/*////////*/ ); /////////////////////////////// /*////////*/ ); /////////////////////////////////
if(VL_FindPos<0) return -1; if(VL_FindPos<0) return -1;
const bool CB_IsOK = ZtCMainChars::GetStartCStrObjNum2( const bool CB_IsOK = ZtCMainChars::GetStartCStrObjNum2
(
APC_Origin +VL_FindPos+AL_WrapCloseLen, APC_Origin +VL_FindPos+AL_WrapCloseLen,
AL_OriginLen-VL_FindPos-AL_WrapCloseLen, AL_OriginLen-VL_FindPos-AL_WrapCloseLen,
ARA_SearchArray , ARA_SearchArray ,
RR(APR_CStringStart) RR(APR_CStringStart)
/*/////////*/ ) > 0 ; ////////////////////////////////// ) > 0 ;
//////////////////////////////////////////////////////
if(CB_IsOK) return VL_FindPos+AL_WrapCloseLen; return -1; if(CB_IsOK) return VL_FindPos+AL_WrapCloseLen; return -1;
}/* }/*
@ -1357,8 +1382,15 @@ namespace ZNsMain
for(TypeLength i=0; i<AL_OriginLen; ++i) for(TypeLength i=0; i<AL_OriginLen; ++i)
{ {
const bool CB_IsTrue=(ZtCMainChars::GetStartCStrObjNum2( const bool CB_IsTrue =
APC_Origin+i, AL_OriginLen-i, ARA_SearchArray, RR(APR_CStringStart) )>0 ); (
ZtCMainChars::GetStartCStrObjNum2
(
APC_Origin+i , AL_OriginLen-i,
ARA_SearchArray, RR(APR_CStringStart)
) > 0
);
/////////////////////////////////////////////////
if(CB_IsTrue) return i; if(CB_IsTrue) return i;
}/* }/*
@ -1395,7 +1427,7 @@ namespace ZNsMain
return ZtCMainChars::FindPosEscWrap2( return ZtCMainChars::FindPosEscWrap2(
AR_CCharsOrigin.data(), AR_CCharsEscape.data(), AR_CCharsWrapStart.data(), AR_CCharsWrapClose.data(), AR_CCharsOrigin.data(), AR_CCharsEscape.data(), AR_CCharsWrapStart.data(), AR_CCharsWrapClose.data(),
AR_CCharsOrigin.size(), AR_CCharsEscape.size(), AR_CCharsWrapStart.size(), AR_CCharsWrapClose.size(), ARA_SearchArray, RR(APR_CStringStart) AR_CCharsOrigin.size(), AR_CCharsEscape.size(), AR_CCharsWrapStart.size(), AR_CCharsWrapClose.size(), ARA_SearchArray, RR(APR_CStringStart)
/*#####*/ ); /*:::::*/ );
}/* }/*
template< template<
typename TTyChars, typename TStringArray, typename TString> typename TTyChars, typename TStringArray, typename TString>
@ -1559,18 +1591,26 @@ namespace ZNsMain
do //// do ////
{ {
const bool CB_DoStart = ZtCMainChars::DoStart( const bool CB_DoStart = ZtCMainChars::DoStart
APC_OriginChar+VL_SearchPos, APC_WrapStart, AL_OriginLen-VL_SearchPos, AL_WrapStartLen); (
APC_OriginChar+ VL_SearchPos, APC_WrapStart,
AL_OriginLen - VL_SearchPos, AL_WrapStartLen
);
/////////////////////////////////////////////
if(CB_DoStart==false) return VL_SearchLen; if(CB_DoStart==false) return VL_SearchLen;
// APC_WrapStart 로 시작하는 경우 // APC_WrapStart 로 시작하는 경우
VL_SearchPos+=AL_WrapStartLen; VL_SearchPos += AL_WrapStartLen;
VL_SearchLen+=AL_WrapStartLen; VL_SearchLen += AL_WrapStartLen;
VL_FindPos=ZtCMainChars::FindPos( VL_FindPos = ZtCMainChars::FindPos
APC_OriginChar, APC_WrapClose, AL_OriginLen, AL_WrapStartLen, VL_SearchPos); (
APC_OriginChar, APC_WrapClose ,
AL_OriginLen , AL_WrapStartLen, VL_SearchPos
);
//////////////////////////////////
if(VL_FindPos<0) if(VL_FindPos<0)
{ {
@ -1685,10 +1725,10 @@ namespace ZNsMain
if(VB_IsOK==true) if(VB_IsOK==true)
{ {
ARRL_SearchedPos1=AL_OriginLen1-VL_MatchLen ARRL_SearchedPos1= AL_OriginLen1-VL_MatchLen
; ARRL_SearchedPos2=0 ; ARRL_SearchedPos2= 0
; ARRL_SearchedLen1=VL_MatchLen ; ARRL_SearchedLen1= VL_MatchLen
; ARRL_SearchedLen2=AL_SearchLength-VL_MatchLen ; ARRL_SearchedLen2= AL_SearchLength-VL_MatchLen
; ;
return 0; return 0;
}/* }/*
@ -1697,13 +1737,13 @@ namespace ZNsMain
if(VL_MatchLen>0)*/ if(VL_MatchLen>0)*/
ARRL_SearchedPos2=ZtCMainChars::FindPos( ARRL_SearchedPos2 = ZtCMainChars::FindPos(
APC_Origin2 , APC_Origin2 ,
APC_Search , APC_Search ,
AL_OriginLen2 , AL_OriginLen2 ,
AL_SearchLength , AL_SearchLength ,
0 0
/*/////////*/ ); /////////////////////// /*/////////*/ ); /////////////////////////
if(ARRL_SearchedPos2>=0) if(ARRL_SearchedPos2>=0)
ARRL_SearchedLen2=AL_SearchLength; ARRL_SearchedLen2=AL_SearchLength;
@ -1723,8 +1763,7 @@ namespace ZNsMain
TypeLength& ARRL_SearchedLen2 TypeLength& ARRL_SearchedLen2
////////////// ) ///////////////////////////////////////////////*/ ////////////// ) ///////////////////////////////////////////////*/
template<typename TTyChars> template<typename TTyChars> static TypeLength FindPosLinear( /////
static TypeLength FindPosLinear( /////////////////////////////////
const TTyChars& AR_CCharsOrigin1 , const TTyChars& AR_CCharsOrigin1 ,
const TTyChars& AR_CCharsOrigin2 , const TTyChars& AR_CCharsOrigin2 ,
const TTyChars& AR_CCharsSearch , const TTyChars& AR_CCharsSearch ,
@ -1740,8 +1779,7 @@ namespace ZNsMain
RR(ARRL_SearchedPos1) , RR(ARRL_SearchedPos2) , RR(ARRL_SearchedLen1) , RR(ARRL_SearchedLen2) RR(ARRL_SearchedPos1) , RR(ARRL_SearchedPos2) , RR(ARRL_SearchedLen1) , RR(ARRL_SearchedLen2)
/*//////////*/ ); /*//////////*/ );
}/* }/*
template<typename TTyChars> template<typename TTyChars> static TypeLength FindPosLinear( /////
static TypeLength FindPosLinear( /////////////////////////////////
const TTyChars& AR_CCharsOrigin1 , const TTyChars& AR_CCharsOrigin1 ,
const TTyChars& AR_CCharsOrigin2 , const TTyChars& AR_CCharsOrigin2 ,
const TTyChars& AR_CCharsSearch , const TTyChars& AR_CCharsSearch ,
@ -1855,12 +1893,14 @@ namespace ZNsMain
{ {
// 찾는 데이타의 길이는 AR_CCharsOrigin.size() 이 된다. // 찾는 데이타의 길이는 AR_CCharsOrigin.size() 이 된다.
bool VB_IsOK = ZtCMainChars::DoStart( ////////////////// bool VB_IsOK = ZtCMainChars::DoStart ///////////
(
VO_CCharsOrigin.data() , VO_CCharsOrigin.data() ,
AR_CCharsSearch.data()+VL_ReadyBuffSize, AR_CCharsSearch.data()+VL_ReadyBuffSize,
VO_CCharsOrigin.size() , VO_CCharsOrigin.size() ,
VO_CCharsOrigin.size() VO_CCharsOrigin.size()
/*/////////*/ ); /////////////////////////////////////// );
////////////////////////////////////////////////
if(VB_IsOK==true) if(VB_IsOK==true)
{ {
@ -1962,8 +2002,8 @@ namespace ZNsMain
if(VL_FindPos<0) if(VL_FindPos<0)
{ {
ARRL_StartPos = -1; ARRL_StartPos = -1 ;
ARRE_ERun=AR_CReadyExec.OnMeetNormal ARRE_ERun = AR_CReadyExec.OnMeetNormal
( (
VO_CCharsOrigin.data() VO_CCharsOrigin.data()
, VO_CCharsOrigin.size()-VL_MatchLen , VO_CCharsOrigin.size()-VL_MatchLen
@ -2143,21 +2183,22 @@ namespace ZNsMain
VO_CCharsOrigin.size() VO_CCharsOrigin.size()
/*/////////*/ ); ////////////////////////////// /*/////////*/ ); //////////////////////////////
TypeLength VL_ValidLen=VO_CCharsOrigin.size()-VL_MatchLen; TypeLength VL_ValidLen = VO_CCharsOrigin.size()-VL_MatchLen;
if(VL_MatchLen>0) if(VL_MatchLen>0)
{ {
ARR_CStrReadyBuff.append(VO_CCharsOrigin.data()+VL_ValidLen, VL_MatchLen); ARR_CStrReadyBuff.append
(VO_CCharsOrigin.data()+VL_ValidLen, VL_MatchLen);
} }
if(VL_ValidLen>0) if(VL_ValidLen>0)
{ {
ARRE_ERun=AR_CReadyExec.template OnMeetNormal<TypeObject> ARRE_ERun = AR_CReadyExec.template OnMeetNormal<TypeObject>
( (
VO_CCharsOrigin.data(), VO_CCharsOrigin.data(),
VL_ValidLen , VL_ValidLen ,
ZCCheckRef::PassData(AO_CHelpType) ZCCheckRef::PassData(AO_CHelpType)
); );
///////////////////////////////////////////////////////// /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
}/* }/*
if(VL_ValidLen>0)*/ if(VL_ValidLen>0)*/
@ -2179,23 +2220,23 @@ namespace ZNsMain
if(VL_ReadyBuffSize>0) if(VL_ReadyBuffSize>0)
{ {
ARRE_ERun=AR_CReadyExec.template OnMeetReady<TypeObject> ARRE_ERun= AR_CReadyExec.template OnMeetReady<TypeObject>
( (
ARR_CStrReadyBuff.data() , VL_ReadyBuffSize, ARR_CStrReadyBuff.data() , VL_ReadyBuffSize,
ZNsMain::ZNsEnum::ZERun_OK, ZCCheckRef::PassData(AO_CHelpType) ZNsMain::ZNsEnum::ZERun_OK, ZCCheckRef::PassData(AO_CHelpType)
); );
//////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO) return true; if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO) return true;
} }
//if(VL_ReadyBuffSize>0) //if(VL_ReadyBuffSize>0)
ARRE_ERun=AR_CReadyExec.template OnMeetReady<TypeObject> ARRE_ERun= AR_CReadyExec.template OnMeetReady<TypeObject>
( (
VO_CCharsOrigin.data() , VL_ReadyLen , VO_CCharsOrigin.data() , VL_ReadyLen ,
ZNsMain::ZNsEnum::ZERun_NO, ZCCheckRef::PassData(AO_CHelpType) ZNsMain::ZNsEnum::ZERun_NO, ZCCheckRef::PassData(AO_CHelpType)
); );
//////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
ARRL_StartPos +=VL_ReadyLen; ARRL_StartPos +=VL_ReadyLen;
ARR_CStrReadyBuff=""; ARR_CStrReadyBuff="";
@ -2207,13 +2248,13 @@ namespace ZNsMain
if(VL_ReadyBuffSize>0) if(VL_ReadyBuffSize>0)
{ {
ARRE_ERun=AR_CReadyExec.template OnMeetNormal<TypeObject> ARRE_ERun= AR_CReadyExec.template OnMeetNormal<TypeObject>
( (
ARR_CStrReadyBuff.data(), ARR_CStrReadyBuff.data(),
VL_ReadyBuffSize , VL_ReadyBuffSize ,
ZCCheckRef::PassData(AO_CHelpType) ZCCheckRef::PassData(AO_CHelpType)
); );
///////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
ARR_CStrReadyBuff = ""; ARR_CStrReadyBuff = "";
@ -2222,24 +2263,24 @@ namespace ZNsMain
}/* }/*
if(VL_ReadyBuffSize>0)*/ if(VL_ReadyBuffSize>0)*/
VL_MatchLen=0; TypeLength VL_FindPos=ZtCMainChars::FindPosLen( VL_MatchLen=0; TypeLength VL_FindPos= ZtCMainChars::FindPosLen(
VO_CCharsOrigin.data(), VO_CCharsOrigin.data(),
AR_CCharsSearch.data(), AR_CCharsSearch.data(),
VO_CCharsOrigin.size(), VO_CCharsOrigin.size(),
AR_CCharsSearch.size(), AR_CCharsSearch.size(),
RR(VL_MatchLen) RR(VL_MatchLen)
/*/////////*/ ); ///////////////////////////////////////////// /*/////////*/ ); //////////////////////////////////////////////
if(VL_FindPos<0) if(VL_FindPos<0)
{ {
ARRL_StartPos=-1; ARRL_StartPos= -1 ;
ARRE_ERun=AR_CReadyExec.template OnMeetNormal<TypeObject> ARRE_ERun = AR_CReadyExec.template OnMeetNormal<TypeObject>
( (
VO_CCharsOrigin.data() , VO_CCharsOrigin.data() ,
VO_CCharsOrigin.size()-VL_MatchLen, VO_CCharsOrigin.size()-VL_MatchLen,
ZCCheckRef::PassData(AO_CHelpType) ZCCheckRef::PassData(AO_CHelpType)
); );
///////////////////////////////////////////////////////// /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
ARR_CStrReadyBuff.append ARR_CStrReadyBuff.append
( (
VO_CCharsOrigin.data() + VO_CCharsOrigin.data() +
@ -2266,12 +2307,12 @@ namespace ZNsMain
}/* }/*
if(VL_FindPos>0)*/ if(VL_FindPos>0)*/
ARRE_ERun=AR_CReadyExec.template OnMeetReady<TypeObject> ARRE_ERun = AR_CReadyExec.template OnMeetReady<TypeObject>
( (
VO_CCharsOrigin.data()+VL_FindPos, AR_CCharsSearch.size(), VO_CCharsOrigin.data()+VL_FindPos, AR_CCharsSearch.size(),
ZNsMain::ZNsEnum::ZERun_NO , ZCCheckRef::PassData(AO_CHelpType) ZNsMain::ZNsEnum::ZERun_NO , ZCCheckRef::PassData(AO_CHelpType)
); );
ARRL_StartPos+=(VL_FindPos+AR_CCharsSearch.size()); return true; ARRL_StartPos += (VL_FindPos+AR_CCharsSearch.size()); return true;
}/* }/*
template< typename TReadyExec , typename TTyChars, template< typename TReadyExec , typename TTyChars,
typename TStringData, typename THelpType> //////////// typename TStringData, typename THelpType> ////////////
@ -2447,13 +2488,14 @@ namespace ZNsMain
); );
////////////////////////////////// //////////////////////////////////
ARR_CStrReadyBuff=""; ARR_CStrReadyBuff = "";
if(VB_IsOK==true) if(VB_IsOK==true)
{ {
ARRL_ValidReady =0; ARRL_ValidReady = 0 ;
ARRL_ValidLen =0; ARRL_ValidLen = 0 ;
ARRL_StartPos +=AR_CCharsSearch.size()-VL_ReadyBuffSize; ARRL_StartPos +=
AR_CCharsSearch.size() - VL_ReadyBuffSize;
return true; return true;
}/* }/*
@ -2476,7 +2518,7 @@ namespace ZNsMain
{ {
ARRL_ValidLen = ARRL_ValidLen =
AR_CCharsOrigin.size()-VL_MatchLen-ARRL_StartPos ; AR_CCharsOrigin.size()-VL_MatchLen-ARRL_StartPos ;
ARRL_StartPos = -1; ARRL_StartPos = -1 ;
ARR_CStrReadyBuff.append( ARR_CStrReadyBuff.append(
VO_CCharsOrigin.data()+ARRL_ValidLen, VL_MatchLen); VO_CCharsOrigin.data()+ARRL_ValidLen, VL_MatchLen);
return false; return false;
@ -2502,8 +2544,7 @@ namespace ZNsMain
///////////////////////////////////////////*/ ///////////////////////////////////////////*/
template<typename TString> template<typename TString> static bool FindPosReadyValid( ////////
static bool FindPosReadyValid( ///////////////////////////////////
TypeCharC* AP_CharOrigin , TypeCharC* AP_CharOrigin ,
TypeCharC* AP_CharSearch , TypeCharC* AP_CharSearch ,
TypeLength AL_OriginLen , TypeLength AL_OriginLen ,
@ -2514,17 +2555,16 @@ namespace ZNsMain
TypeLength& ARRL_ValidLen TypeLength& ARRL_ValidLen
/*//////////*/ ) ///////////////////////////////////////////////*/ /*//////////*/ ) ///////////////////////////////////////////////*/
{ {
return FindPosReadyValid( ///////////////////////////////// return FindPosReadyValid( //::::::::::::::::::::::::::::::::::
ZCChars(AP_CharOrigin, AL_OriginLen), ZCChars(AP_CharOrigin, AL_OriginLen),
ZCChars(AP_CharSearch, AL_SearchLen), ZCChars(AP_CharSearch, AL_SearchLen),
RR(ARR_CStrReadyBuff) , RR(ARR_CStrReadyBuff) ,
ARRL_StartPos , ARRL_StartPos ,
ARRL_ValidReady , ARRL_ValidReady ,
ARRL_ValidLen ARRL_ValidLen
/*/////////*/ ); ////////////////////////////////////////// /*:::::::::*/ ); //:::::::::::::::::::::::::::::::::::::::::::
}/* }/*
template<typename TString> template<typename TString> static bool FindPosReadyValid( ////////
static bool FindPosReadyValid( ///////////////////////////////////
TypeCharC* AP_CharOrigin , TypeCharC* AP_CharOrigin ,
TypeCharC* AP_CharSearch , TypeCharC* AP_CharSearch ,
TypeLength AL_OriginLen , TypeLength AL_OriginLen ,
@ -2745,7 +2785,7 @@ namespace ZNsMain
template<typename TFunctor, typename TTyChars> static void SplitEach( template<typename TFunctor, typename TTyChars> static void SplitEach(
TFunctor AO_Functor, const TTyChars& AR_CCharsOrigin , const TTyChars& AR_CCharsSearch, bool AB_DoExecNull=true) TFunctor AO_Functor, const TTyChars& AR_CCharsOrigin , const TTyChars& AR_CCharsSearch, bool AB_DoExecNull=true)
{ {
ZtCMainChars::template SplitEach<TFunctor,TTyChars>( ZtCMainChars::template SplitEach<TFunctor, TTyChars>( /////////
AO_Functor, AO_Functor,
AR_CCharsOrigin.data(), AR_CCharsSearch.data(), AR_CCharsOrigin.data(), AR_CCharsSearch.data(),
AR_CCharsOrigin.size(), AR_CCharsSearch.size(), AR_CCharsOrigin.size(), AR_CCharsSearch.size(),