commit 2025-09-01 11:37 add Replace() in ZCppMain/ZCStringStd.H

This commit is contained in:
2025-09-02 11:37:49 +09:00
parent 50d2fac736
commit a2e2f8ce7b
4 changed files with 328 additions and 111 deletions

View File

@ -17,7 +17,9 @@ namespace ZNsMain
typedef ZNsChars::ZNsType::ZtCTypeChars<char> ZCTypeChars; typedef ZNsChars::ZNsType::ZtCTypeChars<char> ZCTypeChars;
typedef ZNsChars::ZtCMainChars<ZCTypeChars> ZCMainChars; typedef ZNsChars::ZtCMainChars<ZCTypeChars> ZCMainChars;
public: public:
typedef char TypeData ; typedef char TypeChar ;
typedef char* TypePChar ;
typedef const char* TypeCPChar;
typedef std::string TypeBase ; typedef std::string TypeBase ;
typedef std::string TypeStrStd; typedef std::string TypeStrStd;
typedef ZTypLength TypeLength; typedef ZTypLength TypeLength;
@ -29,28 +31,46 @@ namespace ZNsMain
ZCStringStd(const char* APC_Origin, TypeLength AL_Length): TypeStrStd(APC_Origin, AL_Length){} ZCStringStd(const char* APC_Origin, TypeLength AL_Length): TypeStrStd(APC_Origin, AL_Length){}
ZCStringStd(const char* APC_Origin): TypeStrStd(APC_Origin){} ZCStringStd(const char* APC_Origin): TypeStrStd(APC_Origin){}
ZCStringStd& operator==(const ZCStringStd& rhs) ZCStringStd& operator=(const ZCStringStd& rhs)
{ {
if(this==&rhs){ return *this; }
this->TypeStrStd::operator=(rhs); return *this; this->TypeStrStd::operator=(rhs); return *this;
}/* }/*
ZCStringStd& operator==(const ZCStringStd& rhs)*/ ZCStringStd& operator=(const ZCStringStd& rhs)*/
ZCStringStd& operator=(const TypeBase& rhs)
{
if(this->data()==rhs.data()){ return *this; }
this->TypeStrStd::operator=(rhs); return *this;
}/*
ZCStringStd& operator=(const TypeBase& rhs)*/
template<typename TPosList> void FindPosToList template<typename TPosList> void FindPosToList
(const char* APC_SearchData, TypeLength AL_SearchLen, TPosList& ARR_CPosList) (
const char* APC_SearchData, TypeLength AL_SearchLen,
TPosList& ARR_CPosList , TypeLength AL_Offset=0
)
/*########################################################*/
{ {
// TPosList : ZNsMain::ZtCList<TypeLength> etc // TPosList : ZNsMain::ZtCList<TypeLength> etc
if(this->size()<1) return; if(0 > AL_Offset) AL_Offset=0 ;
if(this->size() <= AL_Offset) return ;
if(this->size() < 1 ) return ;
const char* VPC_OriginStart = this->data(); const char* VPC_OriginStart = this->data();
TypeLength VL_OriginLen = this->size(); TypeLength VL_OriginLen = this->size();
TypeLength VL_FindPos = -1 ; TypeLength VL_FindPos = -1 ;
TypeLength VL_Offset = 0 ; TypeLength VL_OffsetNow = AL_Offset ;
while /*::::::::::::::::::::::::::::::::::::::::::::::*/ while /*::::::::::::::::::::::::::::::::::::::::::::::*/
( ( VL_FindPos = ZCMainChars::FindPos (
( VL_FindPos = ZCMainChars::FindPos
( VPC_OriginStart, APC_SearchData, ( VPC_OriginStart, APC_SearchData,
VL_OriginLen , AL_SearchLen, VL_Offset VL_OriginLen , AL_SearchLen , VL_OffsetNow
) )
) )
>= 0 >= 0
@ -59,18 +79,22 @@ namespace ZNsMain
{ {
ARR_CPosList.push_back(VL_FindPos); ARR_CPosList.push_back(VL_FindPos);
VL_Offset = VL_FindPos + AL_SearchLen; VL_OffsetNow = VL_FindPos + AL_SearchLen;
} }
/*::::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*::::::::::::::::::::::::::::::::::::::::::::::::::::*/
}/* }/*
template<typename TPosList> void FindPosToList template<typename TPosList> void FindPosToList
(const char* APC_SearchData, TypeLength AL_SearchLen, TFindList& ARR_CPosList) (
*/ const char* APC_SearchData, TypeLength AL_SearchLen,
TPosList& ARR_CPosList , TypeLength AL_Offset=0
)
##########################################################*/
template<typename TPosList> ZCStringStd& ReplaceToOutByPosList template<typename TPosList> ZCStringStd& ReplaceToOutByPosList
( (
TPosList& AR_CPosList , TPosList& AR_CPosList ,
const char* APC_Replace , TypeCPChar APC_Replace ,
TypeLength AL_Replace , TypeLength AL_Replace ,
TypeLength AL_Searched , TypeLength AL_Searched ,
ZCStringStd& ARR_SaveOut ZCStringStd& ARR_SaveOut
@ -89,20 +113,20 @@ namespace ZNsMain
TypeLength VL_NeedSize = VL_ThisSize + TypeLength VL_NeedSize = VL_ThisSize +
(AL_Replace-AL_Searched) * VL_PosListSize ; (AL_Replace-AL_Searched) * VL_PosListSize ;
char* VPC_ThisStart = this->data() ; TypePChar VPC_ThisStart = this->data() ;
IterEasyID VH_IterEasyID = AR_CPosList.ItHID(); IterEasyID VH_IterEasyID = AR_CPosList.ItHID();
TypeLength VL_SearchedPos= 0 ; TypeLength VL_SearchedPos= 0 ;
TypeLength VL_SearchedPre= 0 ; // VL_SearchedPos 의 이전 값 TypeLength VL_SearchedPre= 0 ; // VL_SearchedPos 의 이전 값
if(AL_Replace<=AL_Searched) // 메모리 증가 불필요 if(AL_Replace<=AL_Searched) // 메모리 증가 불필요
{ {
char* VPC_MoveStart = 0 ; TypePChar VPC_MoveStart = 0 ;
char* VPC_DestStart = 0 ; TypePChar VPC_DestStart = 0 ;
TypeLength VL_MoveStart = 0 ; TypeLength VL_MoveStart = 0 ;
TypeLength VL_DestStart = 0 ; TypeLength VL_DestStart = 0 ;
TypeLength VL_MemMoveSize= 0 ; TypeLength VL_MemMoveSize= 0 ;
char* VPC_RepalcePos= 0 ; TypePChar VPC_RepalcePos= 0 ;
__for1(TypeLength, i, VL_PosListSize) __for1(TypeLength, i, VL_PosListSize)
{ {
@ -155,14 +179,14 @@ namespace ZNsMain
ARR_SaveOut.resize(VL_NeedSize); ARR_SaveOut.resize(VL_NeedSize);
char* VPC_OutStart = ARR_SaveOut.data() ; TypePChar VPC_OutStart = ARR_SaveOut.data() ;
char* VPC_CopyStart = 0 ; TypePChar VPC_CopyStart = 0 ;
char* VPC_DestStart = 0 ; TypePChar VPC_DestStart = 0 ;
TypeLength VL_CopyStart = 0 ; TypeLength VL_CopyStart = 0 ;
TypeLength VL_DestStart = 0 ; TypeLength VL_DestStart = 0 ;
TypeLength VL_MemCopySize= 0 ; TypeLength VL_MemCopySize= 0 ;
char* VPC_RepalcePos= 0 ; TypePChar VPC_RepalcePos= 0 ;
__for1(TypeLength, i, VL_PosListSize) __for1(TypeLength, i, VL_PosListSize)
{ {
@ -218,20 +242,64 @@ namespace ZNsMain
template<typename TPosList> ZCStringStd& ReplaceToOutByPosList template<typename TPosList> ZCStringStd& ReplaceToOutByPosList
( (
TPosList& AR_CPosList , TPosList& AR_CPosList ,
const char* APC_Replace , TypeCPChar APC_Replace ,
TypeLength AL_Replace , TypeLength AL_Replace ,
TypeLength AL_Searched , TypeLength AL_Searched ,
ZCStringStd& ARR_SaveOut ZCStringStd& ARR_SaveOut
) )
############################################################*/ ############################################################*/
ZCStringStd& Replace /*####################################################*/
(
TypeCPChar APC_Search , TypeLength AL_Search ,
TypeCPChar APC_Replace, TypeLength AL_Replace, TypeLength AL_Offset=0
)
/*#########################################################################*/
{
if(0 > AL_Offset) AL_Offset=0 ;
if(this->size() <= AL_Offset) return *this;
if(this->size() < 1 ) return *this;
ZtCList<TypeLength> VO_CPosCList; FindPosToList
(
APC_Search, AL_Search, RR(VO_CPosCList), AL_Offset
);
/*////////////////////////////////////////////*/
ZCStringStd VO_CStringOut; return *this = ReplaceToOutByPosList
(
VO_CPosCList, APC_Replace, AL_Replace, AL_Search, RR(VO_CStringOut)
);
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
}/*
ZCStringStd& Replace /*######################################################
(
TypeCPChar APC_Search , TypeLength AL_Search ,
TypeCPChar APC_Replace, TypeLength AL_Replace, TypeLength AL_Offset=0
)
###########################################################################*/
public: public:
};/* };/*
class ZCStringStd : public std::string*/ class ZCStringStd : public std::string*/
std::ostream& operator <<
(std::ostream& AR_COStream, const ZCStringStd& AR_CStringBase)
{
AR_COStream<<static_cast<const std::string&>(AR_CStringBase); return AR_COStream;
}/*
std::ostream& operator <<
(std::ostream& AR_COStream, const ZCStringStd& AR_CStringBase)*/
}/* }/*
namespace ZNsMain*/ namespace ZNsMain*/
#endif //__ZCPPMAIIN_ZCSTRINGSTD_H__ #endif //__ZCPPMAIIN_ZCSTRINGSTD_H__

View File

@ -2872,6 +2872,7 @@ namespace ZNsMain
}/* }/*
template<typename DeriveType> DeriveType& GetDataType(long AL_Index) */ template<typename DeriveType> DeriveType& GetDataType(long AL_Index) */
void FreeAll() void FreeAll()
{ {
ZCLink* VP_Link=mp_HeadLink; ZCLink* VP_Link=mp_HeadLink;
@ -2885,6 +2886,7 @@ namespace ZNsMain
}/* }/*
void FreeAll()*/ void FreeAll()*/
void DeleteAll() void DeleteAll()
{ {
ZCLink* VP_CutLink=0; ZCLink* VP_CutLink=0;
@ -2902,6 +2904,7 @@ namespace ZNsMain
}/* }/*
void DeleteAll()*/ void DeleteAll()*/
void ClearAll() void ClearAll()
{ {
ZCLink* VP_CutLink=0; ZCLink* VP_CutLink=0;
@ -3714,42 +3717,50 @@ namespace ZNsMain
template<> string& ZftMakeStr(string& ARR_SaveCStr, bool AB_Bool)*/ template<> string& ZftMakeStr(string& ARR_SaveCStr, bool AB_Bool)*/
// class ZtCList : simple circular double linked list
template /////////////////////////////////////////////// template ///////////////////////////////////////////////
< <
typename TType, typename TType ,
typename TTypeArg = const TType&, typename TTypeArg = const TType&,
typename TTypSize = ZTypLong typename TTypCAlloc = ZCAllocator ,
typename TTypSize = ZTypLong
> >
class ZtCList /*######################################*/ class ZtCList /*######################################*/
{ {
public: public:
class ZCLink; class ZCLink;
public: public:
typedef TType TypeData; typedef TType TypeData;
typedef TTypeArg TypeArg ; typedef TTypeArg TypeArg ;
typedef TTypSize TypeSize; typedef TTypCAlloc TypeAlloc;
typedef ZCLink* IterEasy; // 가장 대표적으로 쓰일 수 있는 반복자. typedef TTypSize TypeSize;
typedef ZCLink* iterator; typedef ZCLink* IterEasy; // 가장 대표적으로 쓰일 수 있는 반복자.
typedef ZCLink* iterator;
public: public:
class ZCLink class ZCLink : public TypeAlloc
{ {
public: public:
friend class ZtCList; friend class ZtCList;
private: private:
TypeData mo_Data ; TypeData mo_Data ;
ZCLink* mp_NextLink ; ZCLink* mp_NextLink ;
ZCLink* mp_PrevLink ;
private: private:
ZCLink* GetNextPtr() {return mp_NextLink;} ZCLink* GetNextPtr() {return mp_NextLink;}
ZCLink* GetPrevPtr() {return mp_PrevLink;}
const ZCLink* GetNextPtr()const{return mp_NextLink;} const ZCLink* GetNextPtr()const{return mp_NextLink;}
const ZCLink* GetPrevPtr()const{return mp_PrevLink;}
public: public:
ZCLink() ZCLink()
{ {
mp_NextLink = 0; mp_NextLink = mp_PrevLink = 0;
}/* }/*
ZCLink()*/ ZCLink()*/
@ -3757,6 +3768,7 @@ namespace ZNsMain
{ {
mo_Data = rhs.mo_Data ; mo_Data = rhs.mo_Data ;
mp_NextLink = 0 ; mp_NextLink = 0 ;
mp_PrevLink = 0 ;
}/* }/*
ZCLink(const ZCLink& rhs)*/ ZCLink(const ZCLink& rhs)*/
@ -3764,6 +3776,7 @@ namespace ZNsMain
{ {
mo_Data = AR_Data ; mo_Data = AR_Data ;
mp_NextLink = 0 ; mp_NextLink = 0 ;
mp_PrevLink = 0 ;
}/* }/*
ZCLink(const ZCLink& rhs)*/ ZCLink(const ZCLink& rhs)*/
@ -3774,6 +3787,31 @@ namespace ZNsMain
ZCLink& operator=(const ZCLink& rhs)*/ ZCLink& operator=(const ZCLink& rhs)*/
ZCLink* GetNextPrevPtr(TypeSize AL_FarNum)
{
ZCLink* VP_TmpLink=this;
if(AL_FarNum>=0)
{ while(--AL_FarNum>=0) VP_TmpLink=VP_TmpLink->mp_NextLink; }
else{ while(++AL_FarNum<=0) VP_TmpLink=VP_TmpLink->mp_PrevLink; }
return VP_TmpLink;
}/*
ZCLink* GetNextPrevPtr(TypeSize AL_FarNum)*/
const ZCLink* GetNextPrevPtr(TypeSize AL_FarNum) const
{
ZCLink* VP_TmpLink=const_cast<ZCLink*>(this);
if(AL_FarNum>=0)
{ while(--AL_FarNum>=0) VP_TmpLink=VP_TmpLink->mp_NextLink; }
else{ while(++AL_FarNum<=0) VP_TmpLink=VP_TmpLink->mp_PrevLink; }
return VP_TmpLink;
}/*
const ZCLink* GetNextPrevPtr(TypeSize AL_FarNum) const*/
operator TypeData& (){return mo_Data;} operator TypeData& (){return mo_Data;}
operator TypeData (){return mo_Data;} operator TypeData (){return mo_Data;}
TypeData& GetData (){return mo_Data;} TypeData& GetData (){return mo_Data;}
@ -3791,6 +3829,61 @@ namespace ZNsMain
ZCLink* mp_HeadLink; ZCLink* mp_HeadLink;
ZCLink* mp_TailLink; ZCLink* mp_TailLink;
TypeSize ml_LinkCnt ; TypeSize ml_LinkCnt ;
private :
ZCLink* AddTailLink(ZCLink* AP_NewLink)
{
if(ml_LinkCnt<1)
{
mp_HeadLink = AP_NewLink;
mp_TailLink = AP_NewLink;
mp_HeadLink->mp_NextLink = mp_HeadLink ;
mp_HeadLink->mp_PrevLink = mp_HeadLink ;
ml_LinkCnt= 1; return AP_NewLink;
}/*
if(ml_LinkCnt<1)*/
mp_TailLink->mp_NextLink = AP_NewLink ;
AP_NewLink ->mp_PrevLink = mp_TailLink ;
AP_NewLink ->mp_NextLink = mp_HeadLink ;
mp_HeadLink->mp_PrevLink = AP_NewLink ;
mp_TailLink = AP_NewLink; ++ml_LinkCnt;
return AP_NewLink; /*:::::::::::::::::*/
}/*
ZCLink* AddTailLink(ZCLink* AP_CLink)*/
ZCLink* AddHeadLink(ZCLink* AP_NewLink)
{
if(ml_LinkCnt<1)
{
mp_HeadLink = AP_NewLink;
mp_TailLink = AP_NewLink;
mp_HeadLink->mp_NextLink = mp_HeadLink ;
mp_HeadLink->mp_PrevLink = mp_HeadLink ;
ml_LinkCnt= 1; return AP_NewLink;
}/*
if(ml_LinkCnt<1)*/
AP_NewLink ->mp_NextLink = mp_HeadLink ;
mp_HeadLink->mp_PrevLink = AP_NewLink ;
AP_NewLink ->mp_PrevLink = mp_TailLink ;
mp_TailLink->mp_NextLink = AP_NewLink ;
mp_HeadLink = AP_NewLink; ++ml_LinkCnt;
return AP_NewLink; /*:::::::::::::::::*/
}/*
ZCLink* AddHeadLink(ZCLink* AP_CLink)
private :*/
public : public :
ZtCList() ZtCList()
@ -3807,11 +3900,12 @@ namespace ZNsMain
}/* }/*
~ZtCList()*/ ~ZtCList()*/
void DeleteAll() void DeleteAll()
{ {
ZCLink* VP_NowLink = mp_HeadLink; ZCLink* VP_NowLink = mp_HeadLink;
while(VP_NowLink!=0) while(--ml_LinkCnt>=0)
{ {
ZCLink* VP_NextLink = ZCLink* VP_NextLink =
VP_NowLink->mp_NextLink ; VP_NowLink->mp_NextLink ;
@ -3820,7 +3914,7 @@ namespace ZNsMain
VP_NowLink = VP_NextLink; VP_NowLink = VP_NextLink;
}/* }/*
while(VP_NowLink!=0)*/ while(--ml_LinkCnt>=0)*/
mp_HeadLink =0 ; mp_HeadLink =0 ;
mp_TailLink =0 ; mp_TailLink =0 ;
@ -3829,60 +3923,80 @@ namespace ZNsMain
void DeleteAll()*/ void DeleteAll()*/
TypeData& AddTail() TypeData& AddTail( /*++++++++++++*/ )
{ { return AddTailLink(new ZCLink )->mo_Data; }
ZCLink* VP_NewLink = new ZCLink;
if(ml_LinkCnt<1)
{
mp_HeadLink = VP_NewLink;
mp_TailLink = VP_NewLink;
ml_LinkCnt = 1 ;
return VP_NewLink->mo_Data;
}/*
if(ml_LinkCnt<1)*/
mp_TailLink->
mp_NextLink = VP_NewLink;
mp_TailLink = VP_NewLink;
ml_LinkCnt ++ ;
return VP_NewLink->mo_Data;
}/*
TypeData& AddTail()*/
TypeData& AddTail(TypeArg AO_ArgData) TypeData& AddTail(TypeArg AO_ArgData)
{ return AddTailLink(new ZCLink(AO_ArgData))->mo_Data; }
void DeleteHead()
{ {
ZCLink* VP_NewLink = new ZCLink(AO_ArgData); if(ml_LinkCnt<1) return;
if(ml_LinkCnt<1) ZCLink* VP_TempLink = mp_HeadLink ;
mp_HeadLink = mp_HeadLink->mp_NextLink ;
delete VP_TempLink;
if(--ml_LinkCnt<1)
{ {
mp_HeadLink = VP_NewLink; mp_HeadLink = mp_TailLink =0; return;
mp_TailLink = VP_NewLink;
ml_LinkCnt = 1 ;
return VP_NewLink->mo_Data;
}/* }/*
if(ml_LinkCnt<1)*/ if(--ml_LinkCnt<1)*/
mp_TailLink-> mp_HeadLink->mp_PrevLink = mp_TailLink ;
mp_NextLink = VP_NewLink; mp_TailLink->mp_NextLink = mp_HeadLink ;
mp_TailLink = VP_NewLink;
ml_LinkCnt ++ ;
return VP_NewLink->mo_Data;
}/* }/*
TypeData& AddTail(TypeArg AO_ArgData)*/ void DeleteHead()*/
void DeleteTail()
{
if(ml_LinkCnt<1) return;
ZCLink* VP_TempLink = mp_TailLink ;
mp_TailLink = mp_TailLink->mp_PrevLink ;
delete VP_TempLink;
if(--ml_LinkCnt<1)
{
mp_HeadLink = mp_TailLink =0; return;
}/*
if(--ml_LinkCnt<1)*/
mp_HeadLink->mp_PrevLink = mp_TailLink ;
mp_TailLink->mp_NextLink = mp_HeadLink ;
}/*
void DeleteTail()*/
TypeData& GetHeadData(){return mp_HeadLink->mo_Data;}
TypeData& GetTailData(){return mp_TailLink->mo_Data;}
const TypeData& GetHeadData() const{return mp_HeadLink->mo_Data;}
const TypeData& GetTailData() const{return mp_TailLink->mo_Data;}
operator TypeData&() { return AddTail() ; } operator TypeData&() { return AddTail() ; }
TypeSize size() const{ return ml_LinkCnt; }
TypeSize size() const{ return ml_LinkCnt; }
TypeSize GetSize() const{ return ml_LinkCnt; }
void push_back (TypeArg AO_ArgData){AddTail(AO_ArgData);}
void push_front(TypeArg AO_ArgData){AddHead(AO_ArgData);} void push_front(TypeArg AO_ArgData){AddHead(AO_ArgData);}
void push_back (TypeArg AO_ArgData){AddTail(AO_ArgData);}
void pop_front(){DeleteHead();}
void pop_back (){DeleteTail();}
TypeData& front(){return GetHeadData();}
TypeData& back (){return GetTailData();}
const TypeData& front() const{return GetHeadData();}
const TypeData& back () const{return GetTailData();}
template<typename TFunctor> void IterElement(TFunctor AO_Functor) template<typename TFunctor> void IterElement(TFunctor AO_Functor)
@ -3999,21 +4113,46 @@ namespace ZNsMain
}/* }/*
void MoveNextIter(IterEasyIDc& ARRI_IterEasyID) const*/ void MoveNextIter(IterEasyIDc& ARRI_IterEasyID) const*/
void MovePrevIter(ZCLink*& APR_CLink ) const
{
APR_CLink=APR_CLink->GetPrevPtr();
}
void MovePrevIter(IterEasyID& ARRI_IterEasyID) const
{
MovePrevIter((ZCLink*&)(ARRI_IterEasyID));
}
void MovePrevIter(const ZCLink*& APR_CLink ) const
{
APR_CLink=APR_CLink->GetPrevPtr();
}
void MovePrevIter(IterEasyIDc& ARRI_IterEasyID) const
{
MovePrevIter((const ZCLink*&)(ARRI_IterEasyID));
}/*
void MovePrevIter(IterEasyIDc& ARRI_IterEasyID) const*/
TypeData& GetDataInIter(ZCLink* AP_CLink ){return **AP_CLink ;} TypeData& GetDataInIter(ZCLink* AP_CLink ){return **AP_CLink ;}
TypeData& GetDataInIter(IterEasyID ARRI_IterEasyID) TypeData& GetDataInIter(IterEasyID ARRI_IterEasyID)
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID); } { return GetDataInIter((ZCLink*)ARRI_IterEasyID); }
const TypeData& GetDataInIter(const ZCLink* AP_CLink) const const TypeData& GetDataInIter(const ZCLink* AP_CLink ) const
{ { return **AP_CLink ; }
return **AP_CLink; const TypeData& GetDataInIter(IterEasyIDc ARRI_IterEasyID) const
}/* { return GetDataInIter((const ZCLink*)ARRI_IterEasyID); }
const TypeData& GetDataInIter(const ZCLink* AP_CLink) const*/
TypeData& GetDataInIter( ZCLink* AP_CLink , TypeSize AI_FarNum)
{return **(AP_CLink->GetNextPrevPtr(AI_FarNum)) ; }
TypeData& GetDataInIter( IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID, AI_FarNum); }
const TypeData& GetDataInIter( const ZCLink* AP_CLink , TypeSize AI_FarNum) const
{return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; }
const TypeData& GetDataInIter( IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID, AI_FarNum); }
const TypeData& GetDataInIter(IterEasyIDc ARRI_IterEasyID) const
{
return GetDataInIter((const ZCLink*)ARRI_IterEasyID);
}/*
const TypeData& GetDataInIter(IterEasyIDc ARRI_IterEasyID) const*/
IterEasy ItHEasy(){return GetHeadIterEasy ();} IterEasy ItHEasy(){return GetHeadIterEasy ();}
@ -4035,23 +4174,33 @@ namespace ZNsMain
void ItNext(IterEasyIDc& ARRI_IterEasyID) const void ItNext(IterEasyIDc& ARRI_IterEasyID) const
{ ItNext((const ZCLink*&)(ARRI_IterEasyID)); } { ItNext((const ZCLink*&)(ARRI_IterEasyID)); }
TypeData& ItD(IterEasy AP_CLink ){return GetDataInIter(AP_CLink );} void ItPrev(ZCLink*& APR_CLink ) const{ APR_CLink=APR_CLink->GetPrevPtr() ;}
TypeData& ItD(IterEasyID ARRI_IterEasyID ){return GetDataInIter(ARRI_IterEasyID );} void ItPrev(IterEasyID& ARRI_IterEasyID) const{ItPrev((ZCLink*&)(ARRI_IterEasyID));}
TypeData& ItD(ZCLink* AP_CLink , TypeSize AI_FarNum){return GetDataInIter(AP_CLink , AI_FarNum);} void ItPrev(const ZCLink*& APR_CLink ) const{ APR_CLink=APR_CLink->GetPrevPtr() ;}
void ItPrev(IterEasyIDc& ARRI_IterEasyID) const
{ ItPrev((const ZCLink*&)(ARRI_IterEasyID)); }
TypeData& ItD(IterEasy AP_CLink ){return GetDataInIter(AP_CLink );}
TypeData& ItD(IterEasyID ARRI_IterEasyID){return GetDataInIter(ARRI_IterEasyID);}
const TypeData& ItD(const IterEasy AP_CLink ) const{return GetDataInIter(AP_CLink );}
const TypeData& ItD(IterEasyIDc ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID);}
TypeData& ItD(IterEasy AP_CLink , TypeSize AI_FarNum){return GetDataInIter(AP_CLink , AI_FarNum);}
TypeData& ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum){return GetDataInIter(ARRI_IterEasyID, AI_FarNum);} TypeData& ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum){return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
const TypeData& ItD(const IterEasy AP_CLink ) const{return GetDataInIter(AP_CLink );} const TypeData& ItD(const IterEasy AP_CLink , TypeSize AI_FarNum) const{return GetDataInIter(AP_CLink , AI_FarNum);}
const TypeData& ItD(IterEasyIDc ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID );} const TypeData& ItD(IterEasyIDc ARRI_IterEasyID , TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
const TypeData& ItD(const ZCLink* AP_CLink , TypeSize AI_FarNum) const{return GetDataInIter(AP_CLink );}
const TypeData& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
public : public :
};/* };/*
template /////////////////////////////////////////////// template ///////////////////////////////////////////////
< <
typename TType, typename TType ,
typename TTypeArg = const TType&, typename TTypeArg = const TType&,
typename TTypSize = ZTypLong typename TTypCAlloc = ZCAllocator ,
typename TTypSize = ZTypLong
> >
class ZtCList /*######################################*/ class ZtCList /*######################################*/

View File

@ -1498,24 +1498,25 @@ namespace ZNsMain
template<typename TXmlInfo> class ZtCViewLoadXmlOfXmlInfo template<typename TXmlInfo> class ZtCViewLoadXmlOfXmlInfo
{ {
public : public :
typedef TXmlInfo ZCXmlInfo ; typedef TXmlInfo ZCXmlInfo ;
typedef typename ZCXmlInfo::TypeData ZCTypeXmlInfo ; typedef typename ZCXmlInfo::TypeData ZCTypeXmlInfo ;
typedef typename ZCXmlInfo::ZCStringData ZCStringData ; typedef typename ZCXmlInfo::ZCStringData ZCStringData ;
typedef typename ZCXmlInfo::ZCAttribute ZCAttribute ; typedef typename ZCXmlInfo::ZCAttribute ZCAttribute ;
typedef typename ZCXmlInfo::ZCAttriList ZCAttriList ; typedef typename ZCXmlInfo::ZCAttriList ZCAttriList ;
typedef typename ZCXmlInfo::ZCElement ZCElement ; typedef typename ZCXmlInfo::ZCElement ZCElement ;
typedef typename ZCXmlInfo::ZCElementTree ZCElementTree ; typedef typename ZCXmlInfo::ZCElementTree ZCElementTree ;
typedef typename ZCXmlInfo::ZCElementNode ZCElementNode ; typedef typename ZCXmlInfo::ZCElementNode ZCElementNode ;
typedef typename ZCXmlInfo::ZCElementID ZCElementID ; typedef typename ZCXmlInfo::ZCElementID ZCElementID ;
typedef typename ZCXmlInfo::ZCElementIDSet ZCElementIDSet ; typedef typename ZCXmlInfo::ZCElementIDSet ZCElementIDSet ;
typedef typename ZCXmlInfo::ZCElementIDNode ZCElementIDNode; typedef typename ZCXmlInfo::ZCElementIDNode ZCElementIDNode ;
public : public :
typedef typename ZCStringData::TypeChar TypeChar ; typedef typename ZCStringData::TypeChar TypeChar ;
typedef typename ZCStringData::TypeLength TypeLength ; typedef typename ZCStringData::TypeLength TypeLength ;
typedef typename ZCStringData::TypeAlloc TypeAlloc ; typedef typename ZCStringData::TypeAlloc TypeAlloc ;
typedef typename ZCStringData::ZCTypeChars ZCTypeChars ; typedef typename ZCStringData::ZCTypeChars ZCTypeChars ;
typedef typename ZCStringData::ZCMainChars ZCMainChars ; typedef typename ZCStringData::ZCMainChars ZCMainChars ;
typedef typename ZCStringData::ZCStringList ZCStringList ; public :
typedef ZtCObjList<ZCStringData> ZCStringList ;
private: private:
ZTypInt mi_Depth ; ZTypInt mi_Depth ;
ZCXmlInfo mo_CXmlInfo ; ZCXmlInfo mo_CXmlInfo ;

View File

@ -12,7 +12,6 @@
#include "ZCppMain/ZMainHead.H" #include "ZCppMain/ZMainHead.H"
#include "ZCppMain/ZMainHeadEx.H" #include "ZCppMain/ZMainHeadEx.H"
#include "ZCppMain/ZtCMainChars.H" #include "ZCppMain/ZtCMainChars.H"
#include "ZCppMain/ZtCObjList.H"
using namespace std ; using namespace std ;
@ -158,7 +157,7 @@ namespace ZNsMain
template<typename TDeriveString> class ZtCHelpBase template<typename TDeriveString> class ZtCHelpBase
{ {
public: public:
typedef ZNsMain::ZtCObjList< ////////////////// typedef ZNsMain::ZtCList< /////////////////////
TDeriveString , TDeriveString ,
const TDeriveString&, const TDeriveString&,
TAlloc TAlloc
@ -203,7 +202,7 @@ namespace ZNsMain
class ZCSearchInfo*/ class ZCSearchInfo*/
typedef ZNsMain::ZtCObjList ///////////////////// typedef ZNsMain::ZtCList ////////////////////////
< <
ZCSearchInfo, const ZCSearchInfo&, TAlloc ZCSearchInfo, const ZCSearchInfo&, TAlloc
> >