commit 2025-10-10 13:08 edit a bit ZCppMain/ZMainHeadEx.H

This commit is contained in:
2025-10-10 13:09:04 +09:00
parent d220831b19
commit 5a23263a92
3 changed files with 189 additions and 178 deletions

View File

@ -3871,8 +3871,20 @@ namespace ZNsMain
#include <wchar.h> #include <wchar.h>
long long int wcstoll(const wchar_t *nptr, wchar_t **endptr, int base); long long int wcstoll(const wchar_t *nptr, wchar_t **endptr, int base);
*******************************************************************************
# https://learn.microsoft.com/ko-kr/cpp/c-runtime-library/reference/strtoll-strtoll-l-wcstoll-wcstoll-l?view=msvc-170
base가 0 인 경우에는 strSource 에서 가리키는 문자열의 초기 문자를 사용하 여
밑을 결정합니다. 첫 번째 문자가 '0' 이고 두 번째 문자가 'x' 또는 'X' 가 아닌
경우 문자열은 8진수 정수로 해석됩니다. 첫 번째 문자가 '0' 이고 두 번째 문자
가 'x' 또는 'X'이면 문자열은 16진수 정수로 해석됩니다.
첫 번째 문자가 '1'~'9' 이면 문자열은 10진수 정수로 해석됩니다.
문자 'a'~'z' 또는 'A'~'Z'에는 값 10~35가 할당됩니다. 할당된 값이 base 보다
작은 문자만 사용할 수 있습니다. 밑의 범위를 벗어난 첫 번째 문자가 발견되면
검색이 중지됩니다. 예를 들어 base 가 0 인데 처음 검색된 문자가 '0' 이면 문
자열은 8진수 정수로 간주되며 '8' 또는 '9' 문자가 발견되면 검색은 중지됩니다.
*******************************************************************************
float wcstof ( const wchar_t* str, wchar_t** str_end ); (since C++11) float wcstof ( const wchar_t* str, wchar_t** str_end ); (since C++11)
double wcstod ( const wchar_t* str, wchar_t** str_end ); double wcstod ( const wchar_t* str, wchar_t** str_end );
long double wcstold( const wchar_t* str, wchar_t** str_end ); (since C++11) long double wcstold( const wchar_t* str, wchar_t** str_end ); (since C++11)

View File

@ -3987,8 +3987,8 @@ namespace ZNsMain
if(VI_Index<0) return ARR_CStringExt; if(VI_Index<0) return ARR_CStringExt;
return ARR_CStringExt( return ARR_CStringExt
APC_FileName+VI_Index+1, AI_Length-(VI_Index+1)); ( APC_FileName+VI_Index+1, AI_Length-(VI_Index+1) );
}/* }/*
template<typename TString, typename TTypChar> /////////////// template<typename TString, typename TTypChar> ///////////////
static TString& GetExtName static TString& GetExtName
@ -4000,19 +4000,23 @@ namespace ZNsMain
///////////////////////////////////////////////////////////*/ ///////////////////////////////////////////////////////////*/
template<typename TString, typename TTypChar> static bool SetExtName( template<typename TString, typename TTypChar> static bool SetExtName
const TTypChar* APC_FileName, ZTypLength AI_FileLen , (
const TTypChar* APC_FileExt , ZTypLength AI_ExtLength, const TTypChar* APC_FileName, ZTypLength AI_FileLen ,
TString& ARR_CStringFileNew const TTypChar* APC_FileExt , ZTypLength AI_ExtLength,
/*#########*/ ) /*#################################################*/ TString& ARR_CStringFileNew
)
/*################################################################*/
{ {
// APC_FileName 의 확장자를 APC_FileExt 으로 바꾼 // APC_FileName 의 확장자를 APC_FileExt 으로 바꾼
// 새로운 파일명을 ARR_CStringFileNew 에 전달한다. // 새로운 파일명을 ARR_CStringFileNew 에 전달한다.
ZTypLength VL_ExtPos=ZCMainChars::FindPosFromEnd( ZTypLength VL_ExtPos=ZCMainChars::FindPosFromEnd
APC_FileName, ".", (
AI_FileLen ,(ZTypLength)1 APC_FileName, TTypChar(".") ,
/*/////////*/ ); //////////////////////////////// AI_FileLen , (ZTypLength)1
);
/**********************************************/
if(VL_ExtPos<0 || VL_ExtPos==AI_FileLen-1) if(VL_ExtPos<0 || VL_ExtPos==AI_FileLen-1)
{ {
@ -4027,34 +4031,54 @@ namespace ZNsMain
}/* }/*
else if(VL_ExtPos==0)*/ else if(VL_ExtPos==0)*/
ARR_CStringFileNew.append(APC_FileName, VL_ExtPos ); ARR_CStringFileNew.append(APC_FileName , VL_ExtPos );
ARR_CStringFileNew+="."; ARR_CStringFileNew.append(TTypChar('.') );
ARR_CStringFileNew.append(APC_FileExt , AI_ExtLength); ARR_CStringFileNew.append(APC_FileExt , AI_ExtLength );
return true; return true;
}/* }/*
template<typename TString, typename TTypChar> static bool SetExtName( template<typename TString, typename TTypChar> static bool SetExtName
const TTypChar* APC_FileName, ZTypLength AI_FileLen , (
const TTypChar* APC_FileExt , ZTypLength AI_ExtLength, const TTypChar* APC_FileName, ZTypLength AI_FileLen ,
TString& ARR_CStringFileNew const TTypChar* APC_FileExt , ZTypLength AI_ExtLength,
############# ) ###################################################*/ TString& ARR_CStringFileNew
)
##################################################################*/
template<typename TString> static bool SetExtName( template<typename TString> static bool SetExtName(
const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew) const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew)
{ {
return SetExtName( ///////////////////////////// return SetExtName /**************/
AR_CStringFileNow.c_str(), (
AR_CStringFileNow.size() , AR_CStringFileNow.data() ,
AR_CStringNewExt.c_str() , AR_CStringFileNow.size() ,
AR_CStringNewExt.size() , AR_CStringNewExt .data() ,
RR(ARR_CStringFileNew) AR_CStringNewExt .size() ,
/*//////////*/ ); ////////////////////////////// RR(ARR_CStringFileNew)
);
/********************************/
}/* }/*
template<typename TString> static bool SetExtName( template<typename TString> static bool SetExtName(
const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew) */ const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew) */
template<typename TString, typename TCharView> static bool SetExtName
(
const TCharView& AR_FileName, const TCharView& AR_FileExt, TString& ARR_CStringFileNew
)
/*#################################################################*/
{
return SetExtName /***************************/
(
AR_FileName.data(), AR_FileName.size(),
AR_FileExt .data(), AR_FileExt .size()
);
/*********************************************/
}
/*#################################################################*/
template<typename TString, typename TTypChar> static bool SetFileName template<typename TString, typename TTypChar> static bool SetFileName
( (
const TTypChar* APC_FileNow, ZTypLength AI_FileNowLen, const TTypChar* APC_FileNow, ZTypLength AI_FileNowLen,
@ -4066,10 +4090,11 @@ namespace ZNsMain
/* 파일 APC_FileNow 의 확장자를 뺀 부분을 APC_FileNew 으로 바꾼, /* 파일 APC_FileNow 의 확장자를 뺀 부분을 APC_FileNew 으로 바꾼,
새로운 파일명을 ARR_CStringFileNew 에 전달한다. */ 새로운 파일명을 ARR_CStringFileNew 에 전달한다. */
ZTypLength VL_ExtPos=ZCMainChars::FindPos( ///////// ZTypLength VL_ExtPos=ZCMainChars::FindPos
APC_FileNow , ".", (
AI_FileNowLen, 1 APC_FileNow , ".", AI_FileNowLen, 1
/*/////////*/ ); ////////////////////////////////// );
/***************************************/
if(VL_ExtPos<0) if(VL_ExtPos<0)
{ ARR_CStringFileNew.append(APC_FileNew, AI_FileNewLen); return false; } { ARR_CStringFileNew.append(APC_FileNew, AI_FileNewLen); return false; }
@ -4078,7 +4103,7 @@ namespace ZNsMain
/*else if(VL_ExtPos==0)*/ /*else if(VL_ExtPos==0)*/
ARR_CStringFileNew.append(APC_FileNew, AI_FileNewLen); ARR_CStringFileNew.append(APC_FileNew, AI_FileNewLen);
ARR_CStringFileNew+="."; ARR_CStringFileNew.append('.');
if(VL_ExtPos<AI_FileNowLen-1) if(VL_ExtPos<AI_FileNowLen-1)
{ {
@ -4087,9 +4112,7 @@ namespace ZNsMain
APC_FileNow+VL_ExtPos+1, AI_FileNowLen-VL_ExtPos-1 APC_FileNow+VL_ExtPos+1, AI_FileNowLen-VL_ExtPos-1
); );
} }
///////////////////////////// return true; /**************/
return true;
}/* }/*
template<typename TString, typename TTypChar> static bool SetFileName template<typename TString, typename TTypChar> static bool SetFileName
( (
@ -4103,13 +4126,13 @@ namespace ZNsMain
template<typename TString> static bool SetFileName( template<typename TString> static bool SetFileName(
const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew) const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew)
{ {
return SetFileName( /////////////////////////// return SetFileName /**************************************/
AR_CStringFileNow.data(), (
AR_CStringFileNow.size(), AR_CStringFileNow.data(), AR_CStringFileNow.size(),
AR_CStringNewExt .data(), AR_CStringNewExt .data(), AR_CStringNewExt .size(),
AR_CStringNewExt .size(), RR(ARR_CStringFileNew)
RR(ARR_CStringFileNew) );
/*//////////*/ ); ///////////////////////////// /*********************************************************/
}/* }/*
template<typename TString> static bool SetFileName( template<typename TString> static bool SetFileName(
const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew) */ const TString& AR_CStringFileNow, const TString& AR_CStringNewExt, TString& ARR_CStringFileNew) */
@ -4144,13 +4167,12 @@ namespace ZNsMain
return APC_PathName+VL_FindPos+1; return APC_PathName+VL_FindPos+1;
}/* }/*
template<typename TTypChar> template<typename TTypChar> static const TTypChar* GetFileNameInPath
static const TTypChar* GetFileNameInPath /////////////////////// (
( const TTypChar* APC_PathName,
const TTypChar* APC_PathName, ZTypLength AI_Length ,
ZTypLength AI_Length , ZTypLength& ARRI_FileName
ZTypLength& ARRI_FileName )
)
//////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////*/
template<typename TString, typename TTypChar> template<typename TString, typename TTypChar>
@ -4179,7 +4201,7 @@ namespace ZNsMain
static TString& GetFileNameInPath(const TChars& AR_PathName, TString& ARR_FileNameCStr) */ static TString& GetFileNameInPath(const TChars& AR_PathName, TString& ARR_FileNameCStr) */
static bool RmAnyDir /*###############################################################*/ static bool RmAnyDir ///////////////////////////////////////////////////////////////////
( ZTypCPCh AP_DirName, void (*APF_ExceptHandle) ( ZTypCPCh AP_DirName, void (*APF_ExceptHandle)
( (
ZTypCPCh AP_FileName, ZCFileData& AR_CFileData, ZTypCPCCh AP_Message ZTypCPCh AP_FileName, ZCFileData& AR_CFileData, ZTypCPCCh AP_Message
@ -4466,7 +4488,7 @@ namespace ZNsMain
#endif //!defined(_WIN) && !defined(_REENTRANT) #endif //!defined(_WIN) && !defined(_REENTRANT)
}/* }/*
static bool RmAnyDir ################################################################@# static bool RmAnyDir //////////////////////////////////////////////////////////////////
( (
ZTypCPCh AP_DirName , ZTypCPCh AP_DirName ,
void (*APF_ExceptHandle) void (*APF_ExceptHandle)
@ -5027,7 +5049,7 @@ namespace ZNsMain
ZCFileData VO_CFileData; ZCFileData VO_CFileData;
#if defined(_REENTRANT) && !defined(_NO_USE_REEDDIR_R_) #if defined(_REENTRANT) && !defined(_NO_USE_REEDDIR_R_)
dirent VO_DirEnt; dirent VO_DirEnt ;
#endif #endif
dirent* VP_DirEnt; dirent* VP_DirEnt;
TypeDirID VH_File= ::opendir(APC_DirPath); TypeDirID VH_File= ::opendir(APC_DirPath);
@ -7360,6 +7382,9 @@ namespace ZNsMain
if(AL_Offset<0) AL_Offset=0; if(AL_Offset<0) AL_Offset=0;
typedef ZtCCharType<TStringData> ZCCharType;
typedef typename ZCCharType::TypeChar Typechar ;
#ifndef _WIN #ifndef _WIN
int AH_FileDesc = ::open int AH_FileDesc = ::open
@ -7401,13 +7426,15 @@ namespace ZNsMain
if((VL_ReadSize = ::read(AH_FileDesc, VP_CopyStart, VL_LastPos))<0) if((VL_ReadSize = ::read(AH_FileDesc, VP_CopyStart, VL_LastPos))<0)
{ {
ARR_SaveCStr.resize(VL_PrevSize, ' '); ::close(AH_FileDesc); return true; ARR_SaveCStr.resize(VL_PrevSize, Typechar(0));
::close(AH_FileDesc); return true; /*********/
} }
/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/ /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
ARR_SaveCStr.resize(VL_PrevSize+VL_ReadSize, ' '); ARR_SaveCStr.resize(VL_PrevSize+VL_ReadSize, Typechar(0));
::close(AH_FileDesc); return true; /*:::::::::::*/ ::close(AH_FileDesc); return true; /*********************/
#else //defined(_WIN) #else //defined(_WIN)
@ -7448,17 +7475,17 @@ namespace ZNsMain
if(::ReadFile(VH_File, (LPVOID)VP_CopyStart, dwRead, &dwRead2, NULL)==FALSE) if(::ReadFile(VH_File, (LPVOID)VP_CopyStart, dwRead, &dwRead2, NULL)==FALSE)
{ {
ARR_SaveCStr.resize(VL_PrevSize+dwRead2, ' '); ARR_SaveCStr.resize(VL_PrevSize+dwRead2, Typechar(0));
::CloseHandle(VH_File); return false; ::CloseHandle(VH_File); return false; /**************/
} }
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/ /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
::CloseHandle(VH_File); ::CloseHandle(VH_File);
if(dwRead2>0) if(dwRead2>0)
ARR_SaveCStr.resize(VL_PrevSize+dwRead2, ' '); ARR_SaveCStr.resize(VL_PrevSize+dwRead2, Typechar(0));
else ARR_SaveCStr.resize(VL_PrevSize , ' '); else ARR_SaveCStr.resize(VL_PrevSize , Typechar(0));
return true; return true;

View File

@ -5652,10 +5652,8 @@ namespace ZNsMain
if(AB_DoAppend==true) if(AB_DoAppend==true)
::SetFilePointer(VH_File, 0, NULL, FILE_END); // 덧붙이는 경우라면 파일포인터를 맨 끝으로 옮긴다. ::SetFilePointer(VH_File, 0, NULL, FILE_END); // 덧붙이는 경우라면 파일포인터를 맨 끝으로 옮긴다.
else else ::SetEndOfFile (VH_File) ; // 덧붙이는 경우가 아니면, 기존 내용을 지운다.
::SetEndOfFile(VH_File) ; // 덧붙이는 경우가 아니면, 기존 내용을 지운다.
//else
TypeLength VL_AllSize = ml_UseLen*sizeof(TypeChar); TypeLength VL_AllSize = ml_UseLen*sizeof(TypeChar);
@ -5728,69 +5726,62 @@ namespace ZNsMain
bool WriteFile(const ZCStringBase& AR_FileName, EWriteFile AE_EWriteFile, int AI_RightMode=-1) const*/ bool WriteFile(const ZCStringBase& AR_FileName, EWriteFile AE_EWriteFile, int AI_RightMode=-1) const*/
static TypeLength FindPos( /////////////////////////////////////// static TypeLength FindPos ////////////////////////////////////////
TypeCharC* APC_Origin , (
TypeCharC* APC_Search , TypeCharC* APC_Origin , TypeCharC* APC_Search ,
TypeLength AL_OriginLen , TypeLength AL_OriginLen , TypeLength AL_SearchLen ,
TypeLength AL_SearchLen , TypeLength AL_StartPos=0
TypeLength AL_StartPos=0 )
/*/////////*/ ) ////////////////////////////////////////////////// /*##############################################################*/
{ {
return ZCMainChars::FindPos( //////// return ZCMainChars::FindPos /*************/
APC_Origin , (
APC_Search , APC_Origin , APC_Search ,
AL_OriginLen, AL_OriginLen, AL_SearchLen,
AL_SearchLen, AL_StartPos
AL_StartPos );
/*/////////*/ ); //////////////////// /*****************************************/
}/* }
static TypeLength FindPos( /////////////////////////////////////// /*##############################################################*/
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeLength AL_OriginLen ,
TypeLength AL_SearchLen ,
TypeLength AL_StartPos=0
///////////// ) ///////////////////////////////////////////////*/
static TypeLength FindPos( /////////////////////////////////////// static TypeLength FindPos ////////////////////////////////////////
TypeCharC* APC_Origin , (
TypeCharC* APC_Search , TypeCharC* APC_Origin ,
TypeLength AL_StartPos=0 TypeCharC* APC_Search ,
/*//////////*/ ) ///////////////////////////////////////////////// TypeLength AL_StartPos=0
)
/*##############################################################*/
{ {
return FindPos /////////////////////////////////////////////// return FindPos ///////////////////////////////////////////////
( (
APC_Origin , APC_Origin , APC_Search ,
APC_Search , GetLength(APC_Origin) , GetLength(APC_Search) ,
GetLength(APC_Origin) ,
GetLength(APC_Search) ,
AL_StartPos AL_StartPos
); );
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
}/* }
static TypeLength FindPos( /////////////////////////////////////// /*##############################################################*/
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeLength AL_StartPos=0
///////////// ) ////////////////////////////////////////////////*/
TypeLength FindPos ///////////////////////////////////////////////
TypeLength FindPos( (
TypeCharC* APC_Search, TypeLength AL_SearchLen, TypeLength AL_StartPos=0) const TypeCharC* APC_Search ,
TypeLength AL_SearchLen ,
TypeLength AL_StartPos=0
) const
/*##############################################################*/
{ {
return FindPos(mpc_Data, APC_Search, ml_UseLen, AL_SearchLen, AL_StartPos) ; return FindPos
}/* (mpc_Data, APC_Search, ml_UseLen, AL_SearchLen, AL_StartPos) ;
TypeLength FindPos( }
TypeCharC* APC_Search, TypeLength AL_SearchLen, TypeLength AL_StartPos=0) const*/ /*##############################################################*/
TypeLength FindPos(TypeCharC* APC_Search) const TypeLength FindPos(TypeCharC* APC_Search) const
{ {
return FindPos ////////////// return FindPos /*********************************************/
( (
mpc_Data , APC_Search, mpc_Data , APC_Search, ml_UseLen, GetLength(APC_Search)
ml_UseLen, GetLength(APC_Search)
); );
///////////////////////////// /************************************************************/
}/* }/*
TypeLength FindPos(TypeCharC* APC_Search) const*/ TypeLength FindPos(TypeCharC* APC_Search) const*/
@ -5839,8 +5830,11 @@ namespace ZNsMain
} }
/*############################################################################*/ /*############################################################################*/
TypeLength FindPosEsc( TypeLength FindPosEsc //////////////////////////////////////////////////////////
TypeCharC* APC_Search, TypeCharC* APC_Escape, TypeLength AL_StartPos=0) const (
TypeCharC* APC_Search, TypeCharC* APC_Escape, TypeLength AL_StartPos=0
) const
/*############################################################################*/
{ {
return ZCMainChars::FindPosEsc return ZCMainChars::FindPosEsc
( (
@ -5850,17 +5844,16 @@ namespace ZNsMain
GetLength(APC_Escape) , AL_StartPos GetLength(APC_Escape) , AL_StartPos
); );
////////////////////////////// //////////////////////////////
}/* }
TypeLength FindPosEsc( /*############################################################################*/
TypeCharC* APC_Search, TypeCharC* APC_Escape, TypeLength AL_StartPos=0) const*/
static TypeLength FindPosFromEnd( //////////////////////////////// static TypeLength FindPosFromEnd ///////////////////////////////////////////////
TypeCharC* APC_Origin , (
TypeCharC* APC_Search , TypeCharC* APC_Origin , TypeCharC* APC_Search ,
TypeLength AL_OriginLen, TypeLength AL_OriginLen, TypeLength AL_SearchLen
TypeLength AL_SearchLen )
/*/////////*/ ) ////////////////////////////////////////////////// /*############################################################################*/
{ {
// APC_Origin 문자열에서 APC_Search 을 AL_StartPos 번째 부터 역방향으로 접근해서 찾는다. // APC_Origin 문자열에서 APC_Search 을 AL_StartPos 번째 부터 역방향으로 접근해서 찾는다.
@ -5881,13 +5874,8 @@ namespace ZNsMain
while(i>=0)*/ while(i>=0)*/
return -1; return -1;
}/* }
static TypeLength FindPosFromEnd( //////////////////////////////// /*############################################################################*/
TypeCharC* APC_Origin ,
TypeCharC* APC_Search ,
TypeLength AL_OriginLen,
TypeLength AL_SearchLen
//////////// ) ////////////////////////////////////////////////*/
TypeLength FindPosFromEnd(TypeCharC* APC_Search, TypeLength AL_SearchLen, TypeLength AL_StartPos) const TypeLength FindPosFromEnd(TypeCharC* APC_Search, TypeLength AL_SearchLen, TypeLength AL_StartPos) const
@ -5979,32 +5967,32 @@ namespace ZNsMain
return -1; return -1;
}/* }/*
template<typename TList> static TypeLength FindPosByList( ######## template<typename TList> static TypeLength FindPosByList
TypeCharC* APC_Origin , (
TList& AR_SearchList, TypeCharC* APC_Origin ,
TypeLength AL_OriginLen , TList& AR_SearchList ,
TypeLength& ARRL_MatchLen, TypeLength AL_OriginLen ,
TypeLength AL_StartPos=0 TypeLength& ARRL_MatchLen ,
########### ) ################################################*/ TypeLength AL_StartPos=0
)
######################################################*/
template<typename TList> static TypeLength FindPosByList( /*####*/ template<typename TList> static TypeLength FindPosByList ///////////////////////
TypeCharC* APC_Origin , (
TList& AR_SearchList, TypeCharC* APC_Origin ,
TypeLength& ARRL_MatchLen TList& AR_SearchList,
/*#########*/ ) /*##############################################*/ TypeLength& ARRL_MatchLen
)
/*############################################################################*/
{ {
return FindPosByList return FindPosByList
( (
APC_Origin, AR_SearchList, GetLength(APC_Origin), ARRL_MatchLen APC_Origin, AR_SearchList, GetLength(APC_Origin), ARRL_MatchLen
); );
////////////////// //////////////////
}/* }
template<typename TList> static TypeLength FindPosByList( ######## /*############################################################################*/
TypeCharC* APC_Origin ,
TList& AR_SearchList,
TypeLength& ARRL_MatchLen
############ ) ################################################*/
template<typename TList> static TypeLength template<typename TList> static TypeLength
@ -6037,7 +6025,7 @@ namespace ZNsMain
TypeLength GetMatchLenFromEnd(TypeCharC* APC_Search, TypeLength AL_SearchLen)*/ TypeLength GetMatchLenFromEnd(TypeCharC* APC_Search, TypeLength AL_SearchLen)*/
static TypeLength GetFindCnt /*#######################*/ static TypeLength GetFindCnt ///////////////////////////
( (
TypeCharC* APC_Origin , TypeCharC* APC_Search, TypeCharC* APC_Origin , TypeCharC* APC_Search,
TypeLength AL_OriginLen, TypeLength AL_SearchLen TypeLength AL_OriginLen, TypeLength AL_SearchLen
@ -6064,7 +6052,7 @@ namespace ZNsMain
return VL_SearchCount; return VL_SearchCount;
}/* }/*
static TypeLength GetFindCnt ########################### static TypeLength GetFindCnt ///////////////////////////
( (
TypeCharC* APC_Origin , TypeCharC* APC_Search, TypeCharC* APC_Origin , TypeCharC* APC_Search,
TypeLength AL_OriginLen, TypeLength AL_SearchLen TypeLength AL_OriginLen, TypeLength AL_SearchLen
@ -6098,13 +6086,8 @@ namespace ZNsMain
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
{ {
return FindPos(APC_Origin, APC_FindChars, AL_OriginLen, AL_FindLen, AL_StartPos)>=0; return FindPos(APC_Origin, APC_FindChars, AL_OriginLen, AL_FindLen, AL_StartPos)>=0;
}/* }
static bool DoHave //////////////////////////////////////////////////////////////// /*###############################################################################*/
(
TypeCharC* APC_Origin , TypeCharC* APC_FindChars,
TypeLength AL_OriginLen, TypeLength AL_FindLen , TypeLength AL_StartPos=0
)
/////////////////////////////////////////////////////////////////////////////////*/
static bool DoHave(TypeCharC* APC_Origin, TypeCharC* APC_FindChars, TypeLength AL_StartPos=0) static bool DoHave(TypeCharC* APC_Origin, TypeCharC* APC_FindChars, TypeLength AL_StartPos=0)
{ {
@ -6154,7 +6137,7 @@ namespace ZNsMain
if(i==AL_CheckLen-1) return false; if(i==AL_CheckLen-1) return false;
if(VB_DoHavePeriod ) return false; if(VB_DoHavePeriod ) return false;
VB_DoHavePeriod=true; /*########*/ VB_DoHavePeriod=true; /*::::::::*/
} }
else if(VC_CharTemp<'0' || VC_CharTemp>'9') else if(VC_CharTemp<'0' || VC_CharTemp>'9')
{ {
@ -6185,12 +6168,12 @@ namespace ZNsMain
bool IsDigit() const*/ bool IsDigit() const*/
static bool DoStart static bool DoStart ////////////////////////////////////////////////
( (
TypeCharC* APC_Origin , TypeCharC* APC_FindChars, TypeCharC* APC_Origin , TypeCharC* APC_FindChars,
TypeLength AL_OriginLen, TypeLength AL_FindLen TypeLength AL_OriginLen, TypeLength AL_FindLen
) )
/*###############*/ /*################################################################*/
{ {
// APC_Origin 문자열이 APC_FindChars 로 시작하면 true; // APC_Origin 문자열이 APC_FindChars 로 시작하면 true;
@ -6199,24 +6182,17 @@ namespace ZNsMain
return ZCMainChars::Minus( return ZCMainChars::Minus(
APC_Origin, APC_FindChars, AL_FindLen, AL_FindLen)==0 ; APC_Origin, APC_FindChars, AL_FindLen, AL_FindLen)==0 ;
}/* }
static bool DoStart /*################################################################*/
(
TypeCharC* APC_Origin , TypeCharC* APC_FindChars,
TypeLength AL_OriginLen, TypeLength AL_FindLen
)
/////////////////*/
static bool DoStart(TypeCharC* APC_Origin, TypeCharC* APC_FindChars) static bool DoStart(TypeCharC* APC_Origin, TypeCharC* APC_FindChars)
{ {
return DoStart //////////////////////////////// return DoStart /*****************************************/
( (
APC_Origin APC_Origin , APC_FindChars
, APC_FindChars , GetLength(APC_Origin ), GetLength(APC_FindChars)
, GetLength(APC_Origin )
, GetLength(APC_FindChars)
); );
/////////////////////////////////////////////// /********************************************************/
}/* }/*
static bool DoStart(TypeCharC* APC_Origin, TypeCharC* APC_FindChars)*/ static bool DoStart(TypeCharC* APC_Origin, TypeCharC* APC_FindChars)*/
@ -6230,11 +6206,7 @@ namespace ZNsMain
bool DoStart(TypeCharC* APC_FindChars) const bool DoStart(TypeCharC* APC_FindChars) const
{ {
return DoStart return DoStart( APC_FindChars, GetLength(APC_FindChars) );
(
APC_FindChars, GetLength(APC_FindChars)
);
//////////////
}/* }/*
bool DoStart(TypeCharC* APC_FindChars) const*/ bool DoStart(TypeCharC* APC_FindChars) const*/
@ -6263,7 +6235,7 @@ namespace ZNsMain
( (
mpc_Data, APC_FindChars, ml_UseLen, GetLength(APC_FindChars) mpc_Data, APC_FindChars, ml_UseLen, GetLength(APC_FindChars)
); );
/////////////////////////// /*************************/
}/* }/*
bool DoClose(TypeCharC* APC_FindChars) const*/ bool DoClose(TypeCharC* APC_FindChars) const*/
@ -6293,7 +6265,7 @@ namespace ZNsMain
( (
mpc_Data, APC_FindChars, ml_UseLen, GetLength(APC_FindChars) mpc_Data, APC_FindChars, ml_UseLen, GetLength(APC_FindChars)
); );
////////////////////////// /************************/
}/* }/*
bool DoWrap(TypeCharC* APC_FindChars) const*/ bool DoWrap(TypeCharC* APC_FindChars) const*/