From 15ba79c33c6229d06d4c4f295e58fa35684573c9 Mon Sep 17 00:00:00 2001 From: sauron Date: Tue, 19 Aug 2025 14:15:42 +0900 Subject: [PATCH] commit 2025-08-19 14:15 edit a bit ZCppMain/ZtCMainChars.H --- ZCppMain/ZtCMainChars.H | 297 ++++++++++++++++++++++++++++-------------------- 1 file changed, 171 insertions(+), 126 deletions(-) diff --git a/ZCppMain/ZtCMainChars.H b/ZCppMain/ZtCMainChars.H index 12c49dc..41f78e7 100644 --- a/ZCppMain/ZtCMainChars.H +++ b/ZCppMain/ZtCMainChars.H @@ -1626,20 +1626,22 @@ namespace ZNsMain return -1; //endif - bool VB_IsOK=ZtCMainChars::DoStart( - APC_Origin2 , - APC_Search +VL_MatchLen, - AL_OriginLen2 , - AL_SearchLength-VL_MatchLen - /*/////////*/ ); + bool VB_IsOK = ZtCMainChars::DoStart + ( + APC_Origin2 , + APC_Search +VL_MatchLen, + AL_OriginLen2 , + AL_SearchLength-VL_MatchLen + ); + //////////////////////////////////// if(VB_IsOK==true) { - ARRL_SearchedPos1=AL_OriginLen1-VL_MatchLen; - ARRL_SearchedPos2=0 ; - ARRL_SearchedLen1=VL_MatchLen; - ARRL_SearchedLen2=AL_SearchLength-VL_MatchLen; - + ARRL_SearchedPos1=AL_OriginLen1-VL_MatchLen + ; ARRL_SearchedPos2=0 + ; ARRL_SearchedLen1=VL_MatchLen + ; ARRL_SearchedLen2=AL_SearchLength-VL_MatchLen + ; return 0; }/* if(VB_IsOK==true)*/ @@ -1766,14 +1768,16 @@ namespace ZNsMain template< typename TReadyExec, typename TTyChars, typename TString> - static bool FindPosReady( - TReadyExec AR_CReadyExec , - const TTyChars& AR_CCharsOrigin , - const TTyChars& AR_CCharsSearch , - TString& ARR_CStrReadyBuff, - TypeLength& ARRL_StartPos , // AR_CCharsOrigin.data() 의 offset 이다. - ZNsEnum::ZERun& ARRE_ERun - /*//////////*/ ) ////////////////////////////////////////*/ + static bool FindPosReady + ( + TReadyExec AR_CReadyExec , + const TTyChars& AR_CCharsOrigin , + const TTyChars& AR_CCharsSearch , + TString& ARR_CStrReadyBuff, + TypeLength& ARRL_StartPos , // AR_CCharsOrigin.data() 의 offset 이다. + ZNsEnum::ZERun& ARRE_ERun + ) + ///////////////////////////////////////////////////////////// { /*########################################################################################### @@ -1826,9 +1830,9 @@ namespace ZNsMain if(VL_ReadyBuffSize>0) { - ARRE_ERun=AR_CReadyExec. + ARRE_ERun =AR_CReadyExec. OnMeetNormal(ARR_CStrReadyBuff.data(), VL_ReadyBuffSize); - ARR_CStrReadyBuff=""; + ARR_CStrReadyBuff ="" ; if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO) return false; }/* @@ -1844,22 +1848,25 @@ namespace ZNsMain TypeLength VL_ValidLen=VO_CCharsOrigin.size()-VL_MatchLen; 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) - ARRE_ERun=AR_CReadyExec.OnMeetNormal(VO_CCharsOrigin.data(), VL_ValidLen); - //endif + ARRE_ERun=AR_CReadyExec.OnMeetNormal + (VO_CCharsOrigin.data() , VL_ValidLen); return false; }/* if(VL_ReadyBuffSize+AR_CCharsOrigin.size()0)*/ - ARRE_ERun =AR_CReadyExec.OnMeetReady( - VO_CCharsOrigin.data()+VL_FindPos, AR_CCharsSearch.size(), ZNsMain::ZNsEnum::ZERun_NO); - ARRL_StartPos+=(VL_FindPos+AR_CCharsSearch.size()); + ARRE_ERun = AR_CReadyExec.OnMeetReady + ( + VO_CCharsOrigin.data()+VL_FindPos + , AR_CCharsSearch.size() + , ZNsMain::ZNsEnum::ZERun_NO + ); + ARRL_StartPos += (VL_FindPos+AR_CCharsSearch.size()); - return true; + return true; //////////////////////////////////////// }/* template< typename TReadyExec, typename TTyChars, typename TString> - static bool FindPosReady( - TReadyExec AR_CReadyExec , - const TTyChars& AR_CCharsOrigin , - const TTyChars& AR_CCharsSearch , - TString& ARR_CStrReadyBuff, - TypeLength& ARRL_StartPos , // AR_CCharsOrigin.data() 의 offset 이다. - ZNsEnum::ZERun& ARRE_ERun - ////////////// ) ////////////////////////////////////////*/ + static bool FindPosReady + ( + TReadyExec AR_CReadyExec , + const TTyChars& AR_CCharsOrigin , + const TTyChars& AR_CCharsSearch , + TString& ARR_CStrReadyBuff, + TypeLength& ARRL_StartPos , // AR_CCharsOrigin.data() 의 offset 이다. + ZNsEnum::ZERun& ARRE_ERun + ) + ///////////////////////////////////////////////////////////*/ template< typename TReadyExec, typename TStringData> ////////////// @@ -2014,8 +2033,8 @@ namespace ZNsMain typedef ZNsMain::ZtCCheckRef ZCCheckRef ; typedef ZCCheckRef::TypeData TypeObject ; - ZCChars VO_CCharsOrigin( - AR_CCharsOrigin.data(), AR_CCharsOrigin.size() ) ; + ZCChars VO_CCharsOrigin + (AR_CCharsOrigin.data(), AR_CCharsOrigin.size()); VO_CCharsOrigin += ARRL_StartPos ; @@ -2095,12 +2114,14 @@ namespace ZNsMain if(VL_ReadyBuffSize+AR_CCharsOrigin.size() ////////////////// - static bool FindPosReadyValid( - const TTyChars& AR_CCharsOrigin , - const TTyChars& AR_CCharsSearch , - TStringData& ARR_CStrReadyBuff, - TypeLength& ARRL_StartPos , - TypeLength& ARRL_ValidReady , // ARR_CStrReadyBuff 의 유효길이 - TypeLength& ARRL_ValidLen - /*//////////*/ ) /////////////////////////////////////////////////*/ + template + + static bool FindPosReadyValid + ( + const TTyChars& AR_CCharsOrigin , + const TTyChars& AR_CCharsSearch , + TStringData& ARR_CStrReadyBuff, + TypeLength& ARRL_StartPos , + TypeLength& ARRL_ValidReady , // ARR_CStrReadyBuff 의 유효길이 + TypeLength& ARRL_ValidLen + ) + ///////////////////////////////////////////*/ { // ARRL_ValidReady 은 0 이나 ARR_CStrReadyBuff.size() 중 한 값이다. @@ -2317,12 +2341,14 @@ namespace ZNsMain { // 찾는 데이타의 길이는 AR_CCharsOrigin.size() 이 된다. - bool VB_IsOK=ZtCMainChars::DoStart( - VO_CCharsOrigin.data() , - AR_CCharsSearch.data()+VL_ReadyBuffSize, - VO_CCharsOrigin.size() , - VO_CCharsOrigin.size() - /*////////*/ ); + bool VB_IsOK=ZtCMainChars::DoStart + ( + VO_CCharsOrigin.data() , + AR_CCharsSearch.data()+VL_ReadyBuffSize, + VO_CCharsOrigin.size() , + VO_CCharsOrigin.size() + ); + ////////////////////////////////// if(VB_IsOK==true) { @@ -2341,29 +2367,33 @@ namespace ZNsMain ARRL_ValidReady = VL_ReadyBuffSize; ARRL_StartPos =-1; - VL_MatchLen=ZtCMainChars::GetMatchLenFromEnd( - VO_CCharsOrigin.data(), - AR_CCharsSearch.data(), - VO_CCharsOrigin.size(), - VO_CCharsOrigin.size() - /*/////////*/ ); //////////////////////////// + VL_MatchLen = ZtCMainChars::GetMatchLenFromEnd + ( + VO_CCharsOrigin.data(), + AR_CCharsSearch.data(), + VO_CCharsOrigin.size(), + VO_CCharsOrigin.size() + ); + ////////////////////////////////////////////// ARRL_ValidLen=AR_CCharsOrigin.size()-VL_MatchLen; - if(VL_MatchLen>0) ARR_CStrReadyBuff. - append(VO_CCharsOrigin.data()+ARRL_ValidLen, VL_MatchLen); + if(VL_MatchLen>0) ARR_CStrReadyBuff.append + (VO_CCharsOrigin.data()+ARRL_ValidLen, VL_MatchLen); return false; }/* if(VL_ReadyBuffSize+AR_CCharsOrigin.size() ////////////////// - static bool FindPosReadyValid( - const TTyChars& AR_CCharsOrigin , - const TTyChars& AR_CCharsSearch , - TStringData& ARR_CStrReadyBuff, - TypeLength& ARRL_StartPos , - TypeLength& ARRL_ValidReady , // ARR_CStrReadyBuff 의 유효길이 - TypeLength& ARRL_ValidLen - ////////////// ) /////////////////////////////////////////////////*/ + template + + static bool FindPosReadyValid + ( + const TTyChars& AR_CCharsOrigin , + const TTyChars& AR_CCharsSearch , + TStringData& ARR_CStrReadyBuff, + TypeLength& ARRL_StartPos , + TypeLength& ARRL_ValidReady , // ARR_CStrReadyBuff 의 유효길이 + TypeLength& ARRL_ValidLen + ) + ///////////////////////////////////////////*/ template @@ -2472,11 +2505,9 @@ namespace ZNsMain { ++VL_SearchCount; VL_SearchOffset=0; }/* - if(++VL_SearchOffset==AL_SearchLen)*/ + /////////////////////////////////*/ } - else - VL_SearchOffset=0; - /*else*/ + else VL_SearchOffset=0; }/* __for0(TypeLength, i, AL_OriginLen)*/ @@ -2558,21 +2589,23 @@ namespace ZNsMain template static void SplitEach( /////////////// - TFunctor AR_TFunctor , - TypeCharC* APC_OriginChar , - TypeCharC* APC_SearchChar , - TypeLength AL_OriginLen , - TypeLength AL_SearchLen , + TFunctor AO_Functor , + TypeCharC* APC_OriginChar , + TypeCharC* APC_SearchChar , + TypeLength AL_OriginLen , + TypeLength AL_SearchLen , bool AB_DoExecNull=true // 구분 문자로 잘린 문자열 길이가 0 인 경우에도 펑크터를 수행한다. /*//////////*/ ) ///////////////////////////////////////////////*/ { if(AL_OriginLen<1 || AL_OriginLen::GetObjRef(AO_Functor) + (APC_OriginChar, AL_OriginLen, ++VI_SearchCount); + return; }/* if(AL_SearchLen<1)*/ @@ -2600,12 +2633,18 @@ namespace ZNsMain if(VL_Index>VL_CopyStartPos) { - AR_TFunctor( - APC_OriginChar+VL_CopyStartPos, VL_Index-VL_CopyStartPos, ++VI_SearchCount) ; + ZtCTypeData::GetObjRef(AO_Functor) + ( + APC_OriginChar+VL_CopyStartPos , + VL_Index -VL_CopyStartPos , + ++VI_SearchCount + ) ; + //////////////////////////////////////////// } else if(AB_DoExecNull==true) { - AR_TFunctor(0, 0, ++VI_SearchCount) ; + ZtCTypeData::GetObjRef + (AO_Functor)(0, 0, ++VI_SearchCount) ; }/* else if(AB_DoExecNull==true)*/ @@ -2618,17 +2657,23 @@ namespace ZNsMain if(VI_SearchCount==0 && VL_CopyStartPos==0) { - AR_TFunctor(APC_OriginChar, AL_OriginLen, ++VI_SearchCount) ; + ZtCTypeData::GetObjRef(AO_Functor) + (APC_OriginChar, AL_OriginLen, ++VI_SearchCount) ; } else { - AR_TFunctor( - APC_OriginChar+VL_CopyStartPos, AL_OriginLen-VL_CopyStartPos, ++VI_SearchCount) ; + ZtCTypeData::GetObjRef(AO_Functor) + ( + APC_OriginChar+VL_CopyStartPos , + AL_OriginLen -VL_CopyStartPos , + ++VI_SearchCount + ) ; + //////////////////////////////////////////// }/* else*/ }/* template static void SplitEach( /////////////// - TFunctor AR_TFunctor , + TFunctor AO_Functor , TypeCharC* APC_OriginChar , TypeCharC* APC_SearchChar , TypeLength AL_OriginLen , @@ -2637,17 +2682,17 @@ namespace ZNsMain ////////////// ) ///////////////////////////////////////////////*/ template static void SplitEach( - TFunctor AR_TFunctor, 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( - AR_TFunctor, + AO_Functor, AR_CCharsOrigin.data(), AR_CCharsSearch.data(), AR_CCharsOrigin.size(), AR_CCharsSearch.size(), AB_DoExecNull /*/////////*/ ); ////////////////////////////////////////////// }/* template static void SplitEach( - TFunctor AR_TFunctor, 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) */ template static bool SplitTwo( /////////////////