commit 2025-08-16 34:34 edit ZCppMain/ZtCLoadDataBlock.H
ZCLoadDataBlock1 과 ZCLoadDataBlock2 의 소속을 ZNsExam 에서 ZNsExam::ZtCDummy 로 옮김
This commit is contained in:
@ -115,9 +115,9 @@ namespace ZNsMain
|
|||||||
TStringData mo_BlockBuffCStr; // mo_StartMarkCStr, mo_CloseMarkCStr 사이에 있는 데이타는 여기에 쌓아둔다.
|
TStringData mo_BlockBuffCStr; // mo_StartMarkCStr, mo_CloseMarkCStr 사이에 있는 데이타는 여기에 쌓아둔다.
|
||||||
bool mb_DoFindStart ; // mo_StartMarkCStr 을 찾은 상태라면 true
|
bool mb_DoFindStart ; // mo_StartMarkCStr 을 찾은 상태라면 true
|
||||||
|
|
||||||
#define __GET_CHILD_OBJ__ (static_cast<TDerive&>(*this))
|
//protected:
|
||||||
|
private :
|
||||||
/*protected:*/
|
TDerive& GetChildObj(){ return static_cast<TDerive&>(*this); }
|
||||||
public :
|
public :
|
||||||
|
|
||||||
_NP_ ZERun OnMeetNormal(const TypeChar* APC_Data, TypeLength AL_Length)
|
_NP_ ZERun OnMeetNormal(const TypeChar* APC_Data, TypeLength AL_Length)
|
||||||
@ -133,7 +133,7 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
if(mb_DoFindStart==true)*/
|
if(mb_DoFindStart==true)*/
|
||||||
|
|
||||||
return __GET_CHILD_OBJ__.ExecBlockOut(APC_Data, AL_Length);
|
return GetChildObj.ExecBlockOut(APC_Data, AL_Length);
|
||||||
}/*
|
}/*
|
||||||
_NP_ ZERun OnMeetNormal(const TypeChar* APC_Data, TypeLength AL_Length)*/
|
_NP_ ZERun OnMeetNormal(const TypeChar* APC_Data, TypeLength AL_Length)*/
|
||||||
|
|
||||||
@ -153,11 +153,11 @@ namespace ZNsMain
|
|||||||
}/*
|
}/*
|
||||||
if(mb_DoFindStart==true)*/
|
if(mb_DoFindStart==true)*/
|
||||||
|
|
||||||
return __GET_CHILD_OBJ__.ExecBlockOut
|
return GetChildObj().ExecBlockOut
|
||||||
(
|
(
|
||||||
APC_Data, AL_Length, ZCCheckRef::PassData(AO_CHelpType)
|
APC_Data, AL_Length, ZCCheckRef::PassData(AO_CHelpType)
|
||||||
);
|
);
|
||||||
/////////////////////////////////////
|
/////////////////////////////////
|
||||||
}/*
|
}/*
|
||||||
template<typename THelpType> _NP_ ZERun OnMeetNormal(
|
template<typename THelpType> _NP_ ZERun OnMeetNormal(
|
||||||
const TypeChar* APC_Data, TypeLength AL_Length, THelpType AO_CHelpType) */
|
const TypeChar* APC_Data, TypeLength AL_Length, THelpType AO_CHelpType) */
|
||||||
@ -182,11 +182,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(TBooIncMark==true) mo_BlockBuffCStr.append(mo_CloseMarkCStr);
|
if(TBooIncMark==true) mo_BlockBuffCStr.append(mo_CloseMarkCStr);
|
||||||
|
|
||||||
if(__GET_CHILD_OBJ__.ExecBlockIn(mo_BlockBuffCStr)==ZERun_NO)
|
if(GetChildObj().ExecBlockIn(mo_BlockBuffCStr)==ZERun_NO)
|
||||||
{
|
{
|
||||||
mo_BlockBuffCStr=""; return ZERun_NO;
|
mo_BlockBuffCStr=""; return ZERun_NO;
|
||||||
}/*
|
}/*
|
||||||
if(__GET_CHILD_OBJ__.ExecBlockIn(mo_BlockBuffCStr)==ZERun_NO)*/
|
if(GetChildObj().ExecBlockIn(mo_BlockBuffCStr)==ZERun_NO)*/
|
||||||
|
|
||||||
mo_BlockBuffCStr="";
|
mo_BlockBuffCStr="";
|
||||||
}/*
|
}/*
|
||||||
@ -226,13 +226,13 @@ namespace ZNsMain
|
|||||||
if(TBooIncMark==true)
|
if(TBooIncMark==true)
|
||||||
{ mo_BlockBuffCStr.append(mo_CloseMarkCStr); }
|
{ mo_BlockBuffCStr.append(mo_CloseMarkCStr); }
|
||||||
|
|
||||||
if ( __GET_CHILD_OBJ__.ExecBlockIn
|
if ( GetChildObj().ExecBlockIn
|
||||||
(
|
(
|
||||||
mo_BlockBuffCStr, ZCCheckRef::PassData(AO_CHelpType)
|
mo_BlockBuffCStr, ZCCheckRef::PassData(AO_CHelpType)
|
||||||
)
|
)
|
||||||
==ZERun_NO
|
==ZERun_NO
|
||||||
)
|
)
|
||||||
///////////////////////////////////
|
///////////////////////////////
|
||||||
{
|
{
|
||||||
mo_BlockBuffCStr=""; return ZERun_NO;
|
mo_BlockBuffCStr=""; return ZERun_NO;
|
||||||
}
|
}
|
||||||
@ -412,11 +412,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
void FiniBuff()
|
void FiniBuff()
|
||||||
{
|
{
|
||||||
if(mb_DoFindStart==true ) __GET_CHILD_OBJ__.
|
if(mb_DoFindStart==true ) GetChildObj().
|
||||||
ExecBlockOut(mo_StartMarkCStr.data(), mo_StartMarkCStr.size());
|
ExecBlockOut(mo_StartMarkCStr.data(), mo_StartMarkCStr.size());
|
||||||
if(mo_BlockBuffCStr.size()>0) __GET_CHILD_OBJ__.
|
if(mo_BlockBuffCStr.size()>0) GetChildObj().
|
||||||
ExecBlockOut(mo_BlockBuffCStr.data(), mo_MarkBuffCStr.size());
|
ExecBlockOut(mo_BlockBuffCStr.data(), mo_MarkBuffCStr.size());
|
||||||
if(mo_MarkBuffCStr .size()>0) __GET_CHILD_OBJ__.
|
if(mo_MarkBuffCStr .size()>0) GetChildObj().
|
||||||
ExecBlockOut(mo_MarkBuffCStr. data(), mo_MarkBuffCStr. size());
|
ExecBlockOut(mo_MarkBuffCStr. data(), mo_MarkBuffCStr. size());
|
||||||
}/*
|
}/*
|
||||||
void FiniBuff()*/
|
void FiniBuff()*/
|
||||||
@ -425,19 +425,16 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef;
|
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef;
|
||||||
|
|
||||||
if(mb_DoFindStart==true ) __GET_CHILD_OBJ__.ExecBlockOut
|
if(mb_DoFindStart==true ) GetChildObj().ExecBlockOut
|
||||||
(mo_StartMarkCStr.data(), mo_StartMarkCStr.size(), ZCCheckRef::PassData(AO_CHelpType));
|
(mo_StartMarkCStr.data(), mo_StartMarkCStr.size(), ZCCheckRef::PassData(AO_CHelpType));
|
||||||
if(mo_BlockBuffCStr.size()>0) __GET_CHILD_OBJ__.ExecBlockOut
|
if(mo_BlockBuffCStr.size()>0) GetChildObj().ExecBlockOut
|
||||||
(mo_BlockBuffCStr.data(), mo_BlockBuffCStr.size(), ZCCheckRef::PassData(AO_CHelpType));
|
(mo_BlockBuffCStr.data(), mo_BlockBuffCStr.size(), ZCCheckRef::PassData(AO_CHelpType));
|
||||||
if(mo_MarkBuffCStr .size()>0) __GET_CHILD_OBJ__.ExecBlockOut
|
if(mo_MarkBuffCStr .size()>0) GetChildObj().ExecBlockOut
|
||||||
(mo_MarkBuffCStr. data(), mo_MarkBuffCStr. size(), ZCCheckRef::PassData(AO_CHelpType));
|
(mo_MarkBuffCStr. data(), mo_MarkBuffCStr. size(), ZCCheckRef::PassData(AO_CHelpType));
|
||||||
}/*
|
}/*
|
||||||
template<typename THelpType> void FiniBuff(THelpType AO_CHelpType) */
|
template<typename THelpType> void FiniBuff(THelpType AO_CHelpType) */
|
||||||
|
|
||||||
|
|
||||||
#undef __GET_CHILD_OBJ__
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template< typename TDerive ,
|
template< typename TDerive ,
|
||||||
@ -733,168 +730,176 @@ namespace ZNsMain
|
|||||||
template<typename TStringData> class ZtCExamReadyExec*/
|
template<typename TStringData> class ZtCExamReadyExec*/
|
||||||
|
|
||||||
|
|
||||||
|
template<typename TDummy=void> class ZtCDummy
|
||||||
typedef ZNsMain::ZtCStringBase<char> ZCStringBase;
|
|
||||||
|
|
||||||
|
|
||||||
class ZCLoadDataBlock1 : public ZNsMain::
|
|
||||||
ZtCLoadDataBlock<ZCLoadDataBlock1, ZCStringBase>
|
|
||||||
{
|
{
|
||||||
protected:
|
public:
|
||||||
|
typedef ZNsMain::ZtCStringBase<char> ZCStringBase;
|
||||||
|
typedef typename ZCStringBase::TypeChar TypeChar ;
|
||||||
|
public:
|
||||||
|
|
||||||
friend class ZNsMain::ZtCLoadDataBlock<ZCLoadDataBlock1, ZCStringBase>;
|
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////
|
class ZCLoadDataBlock1 : public ZNsMain::
|
||||||
|
ZtCLoadDataBlock<ZCLoadDataBlock1, ZCStringBase>
|
||||||
■ ZNsMain::ZtCLoadDataBlock<CLoadDataBlock, ZCStringBase> 을 TypeBase
|
|
||||||
로 typedef 하고 friend class TypeBase 라 하면 g++ 에서는 컴파일이 안
|
|
||||||
된다.
|
|
||||||
|
|
||||||
CLoadDataBlock_test.cpp:26: error:
|
|
||||||
using typedef-name `std::CLoadDataBlock::TypeBase' after `class'
|
|
||||||
|
|
||||||
Visual C++ 2008 에서는 컴파일되는데, 이점은 Visual C++ 쪽이 좀 더 합
|
|
||||||
리적인 것 같다.
|
|
||||||
|
|
||||||
-- 2008-12-10 21:14:00
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////*/
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
ZERun ExecBlockIn(const ZCStringBase& AR_CString)
|
|
||||||
{
|
{
|
||||||
cout<<"▷ Search Data Block IN =>\""<<AR_CString<<"\""<<endl; return ZERun_OK;
|
protected:
|
||||||
}/*
|
|
||||||
ZERun ExecBlockIn(const ZCStringBase& AR_CString)*/
|
|
||||||
|
|
||||||
template<typename THelpObj> ZERun ExecBlockIn
|
friend class ZNsMain::ZtCLoadDataBlock<ZCLoadDataBlock1, ZCStringBase>;
|
||||||
(const ZCStringBase& AR_CStringData, THelpObj AO_HelpObj)
|
|
||||||
{
|
|
||||||
cout<<"Help:Search Data Block IN =>\""<<AR_CStringData<<"\""<<endl; return ZERun_OK;
|
|
||||||
}/*
|
|
||||||
template<typename THelpObj> ZERun ExecBlockIn
|
|
||||||
(const ZCStringBase& AR_CStringData, THelpObj AO_HelpObj)*/
|
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)
|
■ ZNsMain::ZtCLoadDataBlock<CLoadDataBlock, ZCStringBase> 을 TypeBase
|
||||||
{
|
로 typedef 하고 friend class TypeBase 라 하면 g++ 에서는 컴파일이 안
|
||||||
if(AL_Length>0)
|
된다.
|
||||||
cout<<"▷ Search Data Block OUT=>\"" ;
|
|
||||||
else cout<<"▷ Search Data Block OUT=>\"NULL";
|
|
||||||
|
|
||||||
for(long i=0;i<AL_Length;++i)
|
CLoadDataBlock_test.cpp:26: error:
|
||||||
|
using typedef-name `std::CLoadDataBlock::TypeBase' after `class'
|
||||||
|
|
||||||
|
Visual C++ 2008 에서는 컴파일되는데, 이점은 Visual C++ 쪽이 좀 더 합
|
||||||
|
리적인 것 같다.
|
||||||
|
|
||||||
|
-- 2008-12-10 21:14:00
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
ZERun ExecBlockIn(const ZCStringBase& AR_CString)
|
||||||
{
|
{
|
||||||
cout.put( AP_Data[i] );
|
cout<<"▷ Search Data Block IN =>\""<<AR_CString<<"\""<<endl; return ZERun_OK;
|
||||||
}
|
}/*
|
||||||
/////////////////////////////
|
ZERun ExecBlockIn(const ZCStringBase& AR_CString)*/
|
||||||
|
|
||||||
cout<<"\""<<endl; return ZERun_OK;
|
template<typename THelpObj> ZERun ExecBlockIn
|
||||||
}/*
|
(const ZCStringBase& AR_CStringData, THelpObj AO_HelpObj)
|
||||||
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)*/
|
|
||||||
|
|
||||||
template<typename THelpObj> ZERun ExecBlockOut
|
|
||||||
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj AO_HelpObj)
|
|
||||||
{
|
|
||||||
if(AL_Length>0)
|
|
||||||
cout<<"▷ Help:Search Data Block OUT=>\"" ;
|
|
||||||
else cout<<"▷ Help:Search Data Block OUT=>\"NULL";
|
|
||||||
|
|
||||||
for(long i=0;i<AL_Length;++i)
|
|
||||||
{
|
{
|
||||||
cout.put( AP_Data[i] );
|
cout<<"Help:Search Data Block IN =>\""<<AR_CStringData<<"\""<<endl; return ZERun_OK;
|
||||||
}
|
}/*
|
||||||
/////////////////////////////
|
template<typename THelpObj> ZERun ExecBlockIn
|
||||||
|
(const ZCStringBase& AR_CStringData, THelpObj AO_HelpObj)*/
|
||||||
|
|
||||||
cout<<"\""<<endl; return ZERun_OK;
|
|
||||||
}/*
|
|
||||||
template<typename THelpObj> ZERun ExecBlockOut ZERun ExecBlockOut
|
|
||||||
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj AO_HelpObj)*/
|
|
||||||
|
|
||||||
protected:
|
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)
|
||||||
|
{
|
||||||
|
if(AL_Length>0)
|
||||||
|
cout<<"▷ Search Data Block OUT=>\"" ;
|
||||||
|
else cout<<"▷ Search Data Block OUT=>\"NULL";
|
||||||
|
|
||||||
|
for(long i=0;i<AL_Length;++i)
|
||||||
|
{
|
||||||
|
cout.put( AP_Data[i] );
|
||||||
|
}
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
cout<<"\""<<endl; return ZERun_OK;
|
||||||
|
}/*
|
||||||
|
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)*/
|
||||||
|
|
||||||
|
template<typename THelpObj> ZERun ExecBlockOut
|
||||||
|
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj AO_HelpObj)
|
||||||
|
{
|
||||||
|
if(AL_Length>0)
|
||||||
|
cout<<"▷ Help:Search Data Block OUT=>\"" ;
|
||||||
|
else cout<<"▷ Help:Search Data Block OUT=>\"NULL";
|
||||||
|
|
||||||
|
for(long i=0;i<AL_Length;++i)
|
||||||
|
{
|
||||||
|
cout.put( AP_Data[i] );
|
||||||
|
}
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
cout<<"\""<<endl; return ZERun_OK;
|
||||||
|
}/*
|
||||||
|
template<typename THelpObj> ZERun ExecBlockOut ZERun ExecBlockOut
|
||||||
|
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj AO_HelpObj)*/
|
||||||
|
|
||||||
|
protected:
|
||||||
|
};/*
|
||||||
|
class ZCLoadDataBlock1 : public ZNsMain::
|
||||||
|
ZtCLoadDataBlock<ZCLoadDataBlock1, ZCStringBase>*/
|
||||||
|
|
||||||
|
|
||||||
|
class ZCLoadDataBlock2 : public ZNsMain::
|
||||||
|
ZtCLoadDataBlock<ZCLoadDataBlock2, ZCStringBase>
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
friend class ZNsMain::ZtCLoadDataBlock<ZCLoadDataBlock2, ZCStringBase>;
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
■ ZNsMain::ZtCLoadDataBlock<CLoadDataBlock, ZCStringBase> 을 TypeBase
|
||||||
|
로 typedef 하고 friend class TypeBase 라 하면 g++ 에서는 컴파일이 안
|
||||||
|
된다.
|
||||||
|
|
||||||
|
CLoadDataBlock_test.cpp:26: error:
|
||||||
|
using typedef-name `std::CLoadDataBlock::TypeBase' after `class'
|
||||||
|
|
||||||
|
Visual C++ 2008 에서는 컴파일되는데, 이점은 Visual C++ 쪽이 좀 더 합
|
||||||
|
리적인 것 같다.
|
||||||
|
|
||||||
|
-- 2008-12-10 21:14:00
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
ZERun ExecBlockIn(const ZCStringBase& AR_CString)
|
||||||
|
{
|
||||||
|
cout<<"▷ Search2 Data Block IN =>\""<<AR_CString<<"\""<<endl; return ZERun_OK;
|
||||||
|
}/*
|
||||||
|
ZERun ExecBlockIn(const ZCStringBase& AR_CString)*/
|
||||||
|
|
||||||
|
template<typename THelpObj> ZERun ExecBlockIn
|
||||||
|
(const ZCStringBase& AR_CStringData, THelpObj& AO_HelpObj)
|
||||||
|
{
|
||||||
|
cout<<"Help2:Search2 Data Block IN =>\""<<AR_CStringData<<"\""<<endl; return ZERun_OK;
|
||||||
|
}/*
|
||||||
|
template<typename THelpObj> ZERun ExecBlockIn
|
||||||
|
(const ZCStringBase& AR_CStringData, THelpObj& AO_HelpObj)*/
|
||||||
|
|
||||||
|
|
||||||
|
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)
|
||||||
|
{
|
||||||
|
if(AL_Length>0)
|
||||||
|
cout<<"▷ Search2 Data Block OUT=>\"" ;
|
||||||
|
else cout<<"▷ Search2 Data Block OUT=>\"NULL";
|
||||||
|
|
||||||
|
for(long i=0;i<AL_Length;++i)
|
||||||
|
{
|
||||||
|
cout.put( AP_Data[i] );
|
||||||
|
}
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
cout<<"\""<<endl; return ZERun_OK;
|
||||||
|
}/*
|
||||||
|
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)*/
|
||||||
|
|
||||||
|
template<typename THelpObj> ZERun ExecBlockOut
|
||||||
|
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj& AO_HelpObj)
|
||||||
|
{
|
||||||
|
if(AL_Length>0)
|
||||||
|
cout<<"▷ Help2:Search2 Data Block OUT=>\"" ;
|
||||||
|
else cout<<"▷ Help2:Search2 Data Block OUT=>\"NULL";
|
||||||
|
|
||||||
|
for(long i=0;i<AL_Length;++i)
|
||||||
|
{
|
||||||
|
cout.put( AP_Data[i] );
|
||||||
|
}
|
||||||
|
/////////////////////////////
|
||||||
|
|
||||||
|
cout<<"\""<<endl; return ZERun_OK;
|
||||||
|
}/*
|
||||||
|
template<typename THelpObj> ZERun ExecBlockOut ZERun ExecBlockOut
|
||||||
|
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj& AO_HelpObj)*/
|
||||||
|
|
||||||
|
protected:
|
||||||
|
};/*
|
||||||
|
class ZCLoadDataBlock2 : public ZNsMain::
|
||||||
|
ZtCLoadDataBlock<ZCLoadDataBlock2, ZCStringBase>*/
|
||||||
|
|
||||||
|
public:
|
||||||
};/*
|
};/*
|
||||||
class ZCLoadDataBlock1 : public ZNsMain::
|
template<typename TDummy=void> class ZtCDummy*/
|
||||||
ZtCLoadDataBlock<ZCLoadDataBlock1, ZCStringBase>*/
|
|
||||||
|
|
||||||
|
|
||||||
class ZCLoadDataBlock2 : public ZNsMain::
|
|
||||||
ZtCLoadDataBlock<ZCLoadDataBlock2, ZCStringBase>
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
|
|
||||||
friend class ZNsMain::ZtCLoadDataBlock<ZCLoadDataBlock2, ZCStringBase>;
|
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
■ ZNsMain::ZtCLoadDataBlock<CLoadDataBlock, ZCStringBase> 을 TypeBase
|
|
||||||
로 typedef 하고 friend class TypeBase 라 하면 g++ 에서는 컴파일이 안
|
|
||||||
된다.
|
|
||||||
|
|
||||||
CLoadDataBlock_test.cpp:26: error:
|
|
||||||
using typedef-name `std::CLoadDataBlock::TypeBase' after `class'
|
|
||||||
|
|
||||||
Visual C++ 2008 에서는 컴파일되는데, 이점은 Visual C++ 쪽이 좀 더 합
|
|
||||||
리적인 것 같다.
|
|
||||||
|
|
||||||
-- 2008-12-10 21:14:00
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////*/
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
ZERun ExecBlockIn(const ZCStringBase& AR_CString)
|
|
||||||
{
|
|
||||||
cout<<"▷ Search2 Data Block IN =>\""<<AR_CString<<"\""<<endl; return ZERun_OK;
|
|
||||||
}/*
|
|
||||||
ZERun ExecBlockIn(const ZCStringBase& AR_CString)*/
|
|
||||||
|
|
||||||
template<typename THelpObj> ZERun ExecBlockIn
|
|
||||||
(const ZCStringBase& AR_CStringData, THelpObj& AO_HelpObj)
|
|
||||||
{
|
|
||||||
cout<<"Help2:Search2 Data Block IN =>\""<<AR_CStringData<<"\""<<endl; return ZERun_OK;
|
|
||||||
}/*
|
|
||||||
template<typename THelpObj> ZERun ExecBlockIn
|
|
||||||
(const ZCStringBase& AR_CStringData, THelpObj& AO_HelpObj)*/
|
|
||||||
|
|
||||||
|
|
||||||
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)
|
|
||||||
{
|
|
||||||
if(AL_Length>0)
|
|
||||||
cout<<"▷ Search2 Data Block OUT=>\"" ;
|
|
||||||
else cout<<"▷ Search2 Data Block OUT=>\"NULL";
|
|
||||||
|
|
||||||
for(long i=0;i<AL_Length;++i)
|
|
||||||
{
|
|
||||||
cout.put( AP_Data[i] );
|
|
||||||
}
|
|
||||||
/////////////////////////////
|
|
||||||
|
|
||||||
cout<<"\""<<endl; return ZERun_OK;
|
|
||||||
}/*
|
|
||||||
ZERun ExecBlockOut(const char* AP_Data, long AL_Length)*/
|
|
||||||
|
|
||||||
template<typename THelpObj> ZERun ExecBlockOut
|
|
||||||
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj& AO_HelpObj)
|
|
||||||
{
|
|
||||||
if(AL_Length>0)
|
|
||||||
cout<<"▷ Help2:Search2 Data Block OUT=>\"" ;
|
|
||||||
else cout<<"▷ Help2:Search2 Data Block OUT=>\"NULL";
|
|
||||||
|
|
||||||
for(long i=0;i<AL_Length;++i)
|
|
||||||
{
|
|
||||||
cout.put( AP_Data[i] );
|
|
||||||
}
|
|
||||||
/////////////////////////////
|
|
||||||
|
|
||||||
cout<<"\""<<endl; return ZERun_OK;
|
|
||||||
}/*
|
|
||||||
template<typename THelpObj> ZERun ExecBlockOut ZERun ExecBlockOut
|
|
||||||
(const TypeChar* AP_Data, ZTypLength AL_Length, THelpObj& AO_HelpObj)*/
|
|
||||||
|
|
||||||
protected:
|
|
||||||
};/*
|
|
||||||
class ZCLoadDataBlock2 : public ZNsMain::
|
|
||||||
ZtCLoadDataBlock<ZCLoadDataBlock2, ZCStringBase>*/
|
|
||||||
|
|
||||||
|
|
||||||
template<typename TDummy=void*> class ZtCExamLoadDataBlock
|
template<typename TDummy=void*> class ZtCExamLoadDataBlock
|
||||||
@ -917,11 +922,13 @@ namespace ZNsMain
|
|||||||
|
|
||||||
static int Main(int AI_ArgCnt=0, const char* APA_ArgVal[]=0)
|
static int Main(int AI_ArgCnt=0, const char* APA_ArgVal[]=0)
|
||||||
{
|
{
|
||||||
ZNsExam::ZCLoadDataBlock1 VO_CLoadDataBlock1;
|
typedef ZNsMain ::ZtCStringBase<char> ZCStringBase ;
|
||||||
ZNsExam::ZCLoadDataBlock2 VO_CLoadDataBlock2;
|
|
||||||
|
ZNsExam::ZtCDummy<>::ZCLoadDataBlock1 VO_CLoadDataBlock1;
|
||||||
|
ZNsExam::ZtCDummy<>::ZCLoadDataBlock2 VO_CLoadDataBlock2;
|
||||||
|
|
||||||
ZCHelpObj VO_CHelpObj ;
|
ZCHelpObj VO_CHelpObj ;
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////////////////
|
||||||
|
|
||||||
ZCStringBase VO_CStringBase1
|
ZCStringBase VO_CStringBase1
|
||||||
(
|
(
|
||||||
@ -932,7 +939,7 @@ namespace ZNsMain
|
|||||||
(
|
(
|
||||||
"}}"
|
"}}"
|
||||||
);
|
);
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////////////////
|
||||||
|
|
||||||
VO_CLoadDataBlock1.GetStartMark()="{{";
|
VO_CLoadDataBlock1.GetStartMark()="{{";
|
||||||
VO_CLoadDataBlock1.GetCloseMark()="}}";
|
VO_CLoadDataBlock1.GetCloseMark()="}}";
|
||||||
@ -1547,9 +1554,9 @@ namespace ZNsMain
|
|||||||
public :
|
public :
|
||||||
typedef TStringData ZCStringData;
|
typedef TStringData ZCStringData;
|
||||||
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::ZCMainChars ZCMainChars ;
|
typedef typename ZCStringData::ZCMainChars ZCMainChars;
|
||||||
protected:
|
protected:
|
||||||
ZCStringData mo_CStrSearch ; // 찾아야 하는 값
|
ZCStringData mo_CStrSearch ; // 찾아야 하는 값
|
||||||
ZCStringData mo_CStringBuff;
|
ZCStringData mo_CStringBuff;
|
||||||
@ -1814,7 +1821,7 @@ namespace ZNsMain
|
|||||||
typename TTypeBase=ZNsIFace::
|
typename TTypeBase=ZNsIFace::
|
||||||
ZtCChildLoadDataBlockOne<TStringData>
|
ZtCChildLoadDataBlockOne<TStringData>
|
||||||
>
|
>
|
||||||
class ZtCTypeLoadDataBlockOne ///////////////////////////////////////////////
|
class ZtCTypeLoadDataBlockOne ///////////////////////
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -1823,7 +1830,7 @@ namespace ZNsMain
|
|||||||
public ZNsMain::ZtCLoadDataBlockOne
|
public ZNsMain::ZtCLoadDataBlockOne
|
||||||
<
|
<
|
||||||
ZCLoadDataBlock, TStringData
|
ZCLoadDataBlock, TStringData
|
||||||
/*//////////*/ >
|
/*##########*/ > /*######################################*/
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef TStringData ZCStringData;
|
typedef TStringData ZCStringData;
|
||||||
@ -1831,13 +1838,8 @@ namespace ZNsMain
|
|||||||
typedef typename ZCStringData::TypeChar TypeChar ;
|
typedef typename ZCStringData::TypeChar TypeChar ;
|
||||||
typedef typename ZCStringData::TypeLength TypeLength ;
|
typedef typename ZCStringData::TypeLength TypeLength ;
|
||||||
public:
|
public:
|
||||||
};/*
|
};
|
||||||
class ZCLoadDataBlock :
|
/*########################################################*/
|
||||||
public TTypeBase,
|
|
||||||
public ZNsMain::ZtCLoadDataBlockOne
|
|
||||||
<
|
|
||||||
ZCLoadDataBlock, TStringData
|
|
||||||
////////////// > */
|
|
||||||
|
|
||||||
typedef TStringData ZCStringData;
|
typedef TStringData ZCStringData;
|
||||||
typedef typename ZCStringData::ZCMainChars ZCMainChars ;
|
typedef typename ZCStringData::ZCMainChars ZCMainChars ;
|
||||||
@ -1847,10 +1849,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template< typename TStringData,
|
template< typename TStringData ,
|
||||||
typename TTypeBase=ZNsIFace::ZtCChildLoadDataBlockOne<TStringData>
|
typename TTypeBase=ZNsIFace::
|
||||||
|
ZtCChildLoadDataBlockOne<TStringData>
|
||||||
>
|
>
|
||||||
class ZtCTypeLoadDataBlockOne /////////////////////////////////////////////*/
|
class ZtCTypeLoadDataBlockOne /////////////////////*/
|
||||||
|
|
||||||
}/*
|
}/*
|
||||||
namespace ZNsType*/
|
namespace ZNsType*/
|
||||||
|
Reference in New Issue
Block a user