⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pqdinfo.cpp

📁 电能质量交换格式转换库
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    {
        szName = pInfo->m_alias;
        if( szName == NULL )
            szName = pInfo->m_name;
    }

    return szName;
}


const char * CPQDIF_Info::GetAliasID( const GUID& tag, int id )
{
    const char *szName = szEmpty;

    NI_ID_Int * pInfo = _FindInt( tag, id );
    if( pInfo )
    {
        szName = pInfo->m_alias;
        if( szName == NULL )
            szName = pInfo->m_name;
    }
    
    return szName;
}


const char * CPQDIF_Info::GetAliasPhysType( INT4 type )
{
    const char *szName = szEmpty;

    NI_Type * pInfo = _FindType( type );
    if( pInfo )
        szName = pInfo->m_alias;
    
    return szName;
}

bool CPQDIF_Info::GetTagFromName( const char *szName, GUID& tag )
{

    bool bFound = false;
    
    CList_NI_Tag::iterator  iter;
    for( iter = m_listTags.begin(); 
            iter != m_listTags.end();
            ++iter )
    {
        if( _stricmp( szName, iter->m_name ) == 0 )
        {
            tag = iter->m_tag;
            bFound = true;
            break;
        }
    }

    return bFound;
}


bool CPQDIF_Info::GetIDFromName( const char *szName, GUID& valueID )
{

    bool bFound = false;
    
    CList_NI_ID_GUID::iterator  iter;
    for( iter = m_listGUIDs.begin(); 
            iter != m_listGUIDs.end();
            ++iter )
    {
        if( _stricmp( szName, iter->m_name ) == 0 )
        {
            valueID = iter->m_id;
            bFound = true;
            break;
        }
    }

    return bFound;
}


bool CPQDIF_Info::GetIDFromName( const char *szName, GUID& tagOwner, int &valueID )
{

    bool bFound = false;
    
    CList_NI_ID_Int::iterator  iter;
    for( iter = m_listInts.begin(); 
            iter != m_listInts.end();
            ++iter )
    {
        if( _stricmp( szName, iter->m_name ) == 0 )
        {
            tagOwner = iter->m_tag;
            valueID = iter->m_id;
            bFound = true;
            break;
        }
    }

    return bFound;
}


SIZE4 CPQDIF_Info::GetNumBytesOfType( int idType )
{
    SIZE4   rc = 1L;
	if( idType >= 0 && idType < sizeof( m_sizeDataTable )/sizeof( m_sizeDataTable[0] ) )
	{
		rc = (SIZE4)m_sizeDataTable[ idType ];
	}
    return rc;
}


bool CPQDIF_Info::GetTagGUID( int index, GUID& guidTag )
    {
    bool        status = false;
    NI_Tag *    info;

    info = _LookupTag( index );
    if( info )
        {
        guidTag = info->m_tag;
        status = true;
        }

    return status;
    }


bool CPQDIF_Info::GetTagName( int index, string& nameTag )
    {
    bool        status = false;
    NI_Tag *    info;

    info = _LookupTag( index );
    if( info )
        {
        nameTag = info->m_name;
        status = true;
        }

    return status;
    }


int CPQDIF_Info::GetIDCountGUID
            (
            const   GUID&   tagOwner
            )
{
    CList_NI_ID_GUID::iterator    iter;
    int countID = 0;

    for( iter = m_listGUIDs.begin(); 
            iter != m_listGUIDs.end();
            ++iter )
    {
        //  Matched class ID
        if( iter->m_tag == tagOwner )
        {
            countID++;
        }
    }

    return countID;
}


const char * CPQDIF_Info::GetIDNameGUID
            (
            const   GUID&   tagOwner,
                    int     idxID,
                    GUID&   valueID
            )
{
    NI_ID_GUID * info;
    const   char * name = NULL;
    
    info = _LookupGUID( tagOwner, idxID );
    if( info )
    {
        name = info->m_name;
        valueID = info->m_id;
    }

    return name;
}


int CPQDIF_Info::GetIDCountInt
            (
            const   GUID&   tagOwner
            )
{
    CList_NI_ID_Int::iterator    iter;
    int     countID = 0;

    for( iter = m_listInts.begin();
            iter != m_listInts.end();
            ++iter )
    {
        //  Matched class ID
        if( iter->m_tag == tagOwner )
        {
            countID++;
        }
    }

    return countID;
}


const char * CPQDIF_Info::GetIDNameInt
            (
            const   GUID&   tagOwner,
                    int     idxID,
                    int&    valueID
            )
{
    NI_ID_Int * info;
    const   char * name = NULL;
    
    info = _LookupInt( tagOwner, idxID );
    if( info )
    {
        name = info->m_name;
        valueID = info->m_id;
    }

    return name;
}



//  Lookup functions
//  ----------------


NI_Tag * CPQDIF_Info::_FindTag( const GUID &tag )
{
    NI_Tag * pInfo = NULL;

    NI_Tag info;
    info.m_tag = tag;

    CList_NI_Tag::iterator  iter;
    iter = lower_bound( m_listTags.begin(), m_listTags.end(),
        info, CLess_NI_Tag() );
    if( iter->m_tag == tag )
    {
        pInfo = &( *iter );
    }

    return pInfo;

}


NI_ID_GUID * CPQDIF_Info::_FindGUID
    (
    const   GUID&   id 
    )
{

    NI_ID_GUID * pInfo = NULL;

    NI_ID_GUID info;
    info.m_id = id;

    CList_NI_ID_GUID::iterator  iter;
    iter = lower_bound( m_listGUIDs.begin(), m_listGUIDs.end(),
        info, CLess_NI_ID_GUID() );
    if( iter->m_id == id )
    {
        pInfo = &( *iter );
    }

    return pInfo;
}          


NI_ID_Int * CPQDIF_Info::_FindInt
    (
    const   GUID&   tag,
            int     id 
    )
{
    NI_ID_Int *pInfo = NULL;
    
    
    NI_ID_Int info;
    info.m_tag = tag;
    info.m_id = id;

    CList_NI_ID_Int::iterator iter;
    iter = lower_bound( m_listInts.begin(), m_listInts.end(),
        info, CLess_NI_ID_Int() );
    if( iter->m_tag == tag
        && iter->m_id == id )
    {
        pInfo = &( *iter );
    }

    return pInfo;
}


NI_Type * CPQDIF_Info::_FindType( INT4 type )
{
         
    NI_Type *  pInfo = NULL;    

    CList_NI_Type::iterator     iter;

    for( iter = m_listTypes.begin(); 
            iter != m_listTypes.end();
            ++iter )
    {
        //  Matched tag?
        if( iter->m_type == (int) type )
        {
            pInfo = &( *iter );
            break;
        }
    }

    return pInfo;
}


NI_Tag * CPQDIF_Info::_LookupTag( int idxLook )
{

    NI_Tag *    info = NULL;

    if( idxLook >= 0 && idxLook < m_listTags.size() )
    {
        info = &m_listTags[ idxLook ];
    }

    return info;
}


NI_ID_GUID * CPQDIF_Info::_LookupGUID
        (
        const   GUID&   tagOwner,
                int     idxLook 
        )
{
    CList_NI_ID_GUID::iterator    iter;

    int             idxThis;
    NI_ID_GUID *    info = NULL;

    idxThis = 0;
    for( iter = m_listGUIDs.begin(); 
            iter != m_listGUIDs.end();
            ++iter )
    {
        if( iter->m_tag == tagOwner )
        {
            //  Matched class ID
            if( idxThis == idxLook )
            {
                info = &(*iter);
                break;
            }
            idxThis++;
        }
    }

    return info;
}


NI_ID_Int * CPQDIF_Info::_LookupInt
        ( 
        const   GUID&   tagOwner,
                int     idxLook 
        )
{
    CList_NI_ID_Int::iterator    iter;

    int         idxThis;
    NI_ID_Int * info = NULL;

    idxThis = 0;
    for( iter = m_listInts.begin(); 
            iter != m_listInts.end();
            ++iter )
    {
        //  Matched owner?
        if( iter->m_tag == tagOwner )
        {
            if( idxThis == idxLook )
            {
                info = &(*iter);
                break;
            }
            idxThis++;
        }
    }

    return info;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -