commit 2025-08-29 10:01 edit a bit FindPosLinear in ZCppMain/ZtCMainChars.H

This commit is contained in:
2025-08-29 10:01:48 +09:00
parent 50b3ea97b8
commit dcce3e7e31

View File

@ -1835,15 +1835,15 @@ namespace ZNsMain
이 알고리즘을 구현한 것이 FindPosReady(~) 이다.
FindPosReady() 은 읽어들인 문자열을 AR_CCharsSearch.data() 에 대입하여 AR_CCharsOrigin.data() 찾는다.
못 찾았으면 다음에 읽어들인 문자열에 찾는 문자열이 존재할 수 있으므로, 일단 AR_CCharsOrigin.data() 의
뒤에서 AR_CCharsSearch.data() 의 앞부분과 일치하는 문자를 ARR_CStrReadyBuff 에 저장한다. (이 문자들은
찾는 문자열의 일부일 수 있다.)
FindPosReady() 은 읽 문자열을 AR_CCharsSearch.data() 로 설정하여 AR_CCharsOrigin.data() 에서 찾는다.
못 찾았으면 다음에 읽 문자열에 찾는 문자열이 존재할 수 있으므로, 일단 AR_CCharsOrigin.data() 의 뒤에
서 AR_CCharsSearch.data() 의 앞부분과 일치하는 문자를 ARR_CStrReadyBuff 에 저장한다. (이 문자들은 찾는
문자열의 일부일 수 있다.)
■ TReadyExec 는 아래 두 멤버를 가져야 하며 참조형일 수 있다.
std::ZNsEnum::ZERun TReadyExec::OnMeetNormal(TypeCharC*, TypeLength);
std::ZNsEnum::ZERun TReadyExec::OnMeetReady (TypeCharC*, TypeLength,std::ZNsEnum::ZERun);
std::ZNsEnum::ZERun TReadyExec::OnMeetReady (TypeCharC*, TypeLength, ZNsMain::ZNsEnum::ZERun);
찾는 문자열은 ARR_CStrReadyBuff 와 AR_CCharsOrigin.data() 에 동시에 갈라져 있을 수 있는데, 찾는 문자열을
완전히 찾은 경우는
@ -1908,14 +1908,14 @@ namespace ZNsMain
);
////////////////////////////////////////////////
if(VB_IsOK==true)
if(VB_IsOK)
{
ARR_CStrReadyBuff.append(
VO_CCharsOrigin.data(), VO_CCharsOrigin.size());
ARRL_StartPos = -1; return false;
}/*
if(VB_IsOK==true)*/
if(VB_IsOK)*/
/* 찾지 못한 경우 ARR_CStrReadyBuff 버퍼 앞 1 바이트가
@ -2128,6 +2128,9 @@ namespace ZNsMain
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
using ZNsMain::ZNsEnum::ZERun_NO ;
using ZNsMain::ZNsEnum::ZERun_OK ;
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef ;
typedef typename ZCCheckRef::TypeData TypeObject ;
@ -2178,7 +2181,7 @@ namespace ZNsMain
);
ARR_CStrReadyBuff = ""; //////////////////////////////////
if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO) return false;
if(ARRE_ERun==ZERun_NO) return false;
}/*
if(VL_ReadyBuffSize>0)*/
@ -2229,18 +2232,18 @@ namespace ZNsMain
ARRE_ERun= AR_CReadyExec.template OnMeetReady<TypeObject>
(
ARR_CStrReadyBuff.data(), VL_ReadyBuffSize,
ZNsMain::ZNsEnum::ZERun_OK, ZCCheckRef::PassData(AO_CHelpType)
ZERun_OK , ZCCheckRef::PassData(AO_CHelpType)
);
/////////////////////////////////////////////////////////
if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO) return true;
if(ARRE_ERun==ZERun_NO) return true;
}
//if(VL_ReadyBuffSize>0)
ARRE_ERun= AR_CReadyExec.template OnMeetReady<TypeObject>
(
VO_CCharsOrigin.data(), VL_ReadyLen ,
ZNsMain::ZNsEnum::ZERun_NO, ZCCheckRef::PassData(AO_CHelpType)
ZERun_NO , ZCCheckRef::PassData(AO_CHelpType)
);
/////////////////////////////////////////////////////////
@ -2264,8 +2267,7 @@ namespace ZNsMain
ARR_CStrReadyBuff = "";
if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO)
{ return false; }
if(ARRE_ERun==ZERun_NO){ return false; }
}/*
if(VL_ReadyBuffSize>0)*/
@ -2309,14 +2311,14 @@ namespace ZNsMain
);
///////////////////////////////////////////////////////////
if(ARRE_ERun==ZNsMain::ZNsEnum::ZERun_NO) return true;
if(ARRE_ERun==ZERun_NO) return true;
}/*
if(VL_FindPos>0)*/
ARRE_ERun = AR_CReadyExec.template OnMeetReady<TypeObject>
(
VO_CCharsOrigin.data()+VL_FindPos, AR_CCharsSearch.size(),
ZNsMain::ZNsEnum::ZERun_NO , ZCCheckRef::PassData(AO_CHelpType)
ZERun_NO , ZCCheckRef::PassData(AO_CHelpType)
);
ARRL_StartPos += (VL_FindPos+AR_CCharsSearch.size()); return true;
}/*