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