commit 2025-10-10 13:08 edit a bit ZCppMain/ZMainHeadEx.H
This commit is contained in:
@ -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)
|
||||||
|
@ -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_FileName, ZTypLength AI_FileLen ,
|
||||||
const TTypChar* APC_FileExt , ZTypLength AI_ExtLength,
|
const TTypChar* APC_FileExt , ZTypLength AI_ExtLength,
|
||||||
TString& ARR_CStringFileNew
|
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, ".",
|
(
|
||||||
|
APC_FileName, TTypChar(".") ,
|
||||||
AI_FileLen , (ZTypLength)1
|
AI_FileLen , (ZTypLength)1
|
||||||
/*/////////*/ ); ////////////////////////////////
|
);
|
||||||
|
/**********************************************/
|
||||||
|
|
||||||
if(VL_ExtPos<0 || VL_ExtPos==AI_FileLen-1)
|
if(VL_ExtPos<0 || VL_ExtPos==AI_FileLen-1)
|
||||||
{
|
{
|
||||||
@ -4028,33 +4032,53 @@ 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_FileName, ZTypLength AI_FileLen ,
|
||||||
const TTypChar* APC_FileExt , ZTypLength AI_ExtLength,
|
const TTypChar* APC_FileExt , ZTypLength AI_ExtLength,
|
||||||
TString& ARR_CStringFileNew
|
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.data() ,
|
||||||
AR_CStringFileNow.size() ,
|
AR_CStringFileNow.size() ,
|
||||||
AR_CStringNewExt.c_str() ,
|
AR_CStringNewExt .data() ,
|
||||||
AR_CStringNewExt .size() ,
|
AR_CStringNewExt .size() ,
|
||||||
RR(ARR_CStringFileNew)
|
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,8 +4167,7 @@ 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 ,
|
||||||
@ -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)
|
||||||
@ -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;
|
||||||
|
|
||||||
|
@ -5653,9 +5653,7 @@ 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_Origin ,
|
||||||
TypeCharC* APC_Search ,
|
TypeCharC* APC_Search ,
|
||||||
TypeLength AL_StartPos=0
|
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 ,
|
|
||||||
|
TypeLength FindPos ///////////////////////////////////////////////
|
||||||
|
(
|
||||||
TypeCharC* APC_Search ,
|
TypeCharC* APC_Search ,
|
||||||
|
TypeLength AL_SearchLen ,
|
||||||
TypeLength AL_StartPos=0
|
TypeLength AL_StartPos=0
|
||||||
///////////// ) ////////////////////////////////////////////////*/
|
) const
|
||||||
|
/*##############################################################*/
|
||||||
|
|
||||||
TypeLength FindPos(
|
|
||||||
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 ,
|
TypeCharC* APC_Origin ,
|
||||||
TList& AR_SearchList ,
|
TList& AR_SearchList ,
|
||||||
TypeLength AL_OriginLen ,
|
TypeLength AL_OriginLen ,
|
||||||
TypeLength& ARRL_MatchLen ,
|
TypeLength& ARRL_MatchLen ,
|
||||||
TypeLength AL_StartPos=0
|
TypeLength AL_StartPos=0
|
||||||
########### ) ################################################*/
|
)
|
||||||
|
######################################################*/
|
||||||
|
|
||||||
|
|
||||||
template<typename TList> static TypeLength FindPosByList( /*####*/
|
template<typename TList> static TypeLength FindPosByList ///////////////////////
|
||||||
|
(
|
||||||
TypeCharC* APC_Origin ,
|
TypeCharC* APC_Origin ,
|
||||||
TList& AR_SearchList,
|
TList& AR_SearchList,
|
||||||
TypeLength& ARRL_MatchLen
|
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*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user