EgtGeomKernel :
- le funzioni GetFirstNameInGroup, GetNextName, GetLastNameInGroup e GetPrevName ora accettano anche il solo inizio del nome, purchè terminato da *.
This commit is contained in:
+32
-8
@@ -666,6 +666,11 @@ GeomDB::GetFirstNameInGroup( int nGroupId, const string& sName) const
|
||||
// verifico validità minima di stringa con nome
|
||||
if ( IsEmptyOrSpaces( sName))
|
||||
return GDB_ID_NULL ;
|
||||
// determinazione tipo di ricerca
|
||||
string sToFind = sName ;
|
||||
bool bWild = ( sToFind.back() == '*') ;
|
||||
if ( bWild)
|
||||
sToFind.pop_back() ;
|
||||
// recupero il gruppo
|
||||
const GdbGroup* pGdbGroup = GetGdbGroup( nGroupId) ;
|
||||
if ( pGdbGroup == nullptr)
|
||||
@@ -673,9 +678,10 @@ GeomDB::GetFirstNameInGroup( int nGroupId, const string& sName) const
|
||||
// recupero il primo oggetto del gruppo
|
||||
const GdbObj* pGdbO = pGdbGroup->GetFirstObj() ;
|
||||
while ( pGdbO != nullptr) {
|
||||
// se ha il nome cercato
|
||||
// se ha il nome o la parte iniziale di nome cercato
|
||||
string sObjName ;
|
||||
if ( pGdbO->GetName( sObjName) && sObjName == sName)
|
||||
if ( pGdbO->GetName( sObjName) &&
|
||||
(( ! bWild && sObjName == sToFind) || ( bWild && sObjName.find( sToFind) == 0)))
|
||||
return ( pGdbO->m_nId) ;
|
||||
// passo al successivo
|
||||
pGdbO = pGdbO->GetNext() ;
|
||||
@@ -690,6 +696,11 @@ GeomDB::GetNextName( int nId, const string& sName) const
|
||||
// verifico validità minima di stringa con nome
|
||||
if ( IsEmptyOrSpaces( sName))
|
||||
return GDB_ID_NULL ;
|
||||
// determinazione tipo di ricerca
|
||||
string sToFind = sName ;
|
||||
bool bWild = ( sToFind.back() == '*') ;
|
||||
if ( bWild)
|
||||
sToFind.pop_back() ;
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj = GetGdbObj( nId) ;
|
||||
if ( pGdbObj == nullptr)
|
||||
@@ -697,9 +708,10 @@ GeomDB::GetNextName( int nId, const string& sName) const
|
||||
// recupero il successivo
|
||||
const GdbObj* pGdbNext = pGdbObj->GetNext() ;
|
||||
while ( pGdbNext != nullptr) {
|
||||
// se ha il nome cercato
|
||||
// se ha il nome o la parte iniziale di nome cercato
|
||||
string sObjName ;
|
||||
if ( pGdbNext->GetName( sObjName) && sObjName == sName)
|
||||
if ( pGdbNext->GetName( sObjName) &&
|
||||
(( ! bWild && sObjName == sToFind) || ( bWild && sObjName.find( sToFind) == 0)))
|
||||
return ( pGdbNext->m_nId) ;
|
||||
// passo al successivo
|
||||
pGdbNext = pGdbNext->GetNext() ;
|
||||
@@ -714,6 +726,11 @@ GeomDB::GetLastNameInGroup( int nGroupId, const string& sName) const
|
||||
// verifico validità minima di stringa con nome
|
||||
if ( IsEmptyOrSpaces( sName))
|
||||
return GDB_ID_NULL ;
|
||||
// determinazione tipo di ricerca
|
||||
string sToFind = sName ;
|
||||
bool bWild = ( sToFind.back() == '*') ;
|
||||
if ( bWild)
|
||||
sToFind.pop_back() ;
|
||||
// recupero il gruppo
|
||||
const GdbGroup* pGdbGroup = GetGdbGroup( nGroupId) ;
|
||||
if ( pGdbGroup == nullptr)
|
||||
@@ -721,9 +738,10 @@ GeomDB::GetLastNameInGroup( int nGroupId, const string& sName) const
|
||||
// recupero l'ultimo oggetto del gruppo
|
||||
const GdbObj* pGdbO = pGdbGroup->GetLastObj() ;
|
||||
while ( pGdbO != nullptr) {
|
||||
// se ha il nome cercato
|
||||
// se ha il nome o la parte iniziale di nome cercato
|
||||
string sObjName ;
|
||||
if ( pGdbO->GetName( sObjName) && sObjName == sName)
|
||||
if ( pGdbO->GetName( sObjName) &&
|
||||
(( ! bWild && sObjName == sToFind) || ( bWild && sObjName.find( sToFind) == 0)))
|
||||
return ( pGdbO->m_nId) ;
|
||||
// passo al precedente
|
||||
pGdbO = pGdbO->GetPrev() ;
|
||||
@@ -738,6 +756,11 @@ GeomDB::GetPrevName( int nId, const string& sName) const
|
||||
// verifico validità minima di stringa con nome
|
||||
if ( IsEmptyOrSpaces( sName))
|
||||
return GDB_ID_NULL ;
|
||||
// determinazione tipo di ricerca
|
||||
string sToFind = sName ;
|
||||
bool bWild = ( sToFind.back() == '*') ;
|
||||
if ( bWild)
|
||||
sToFind.pop_back() ;
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj = GetGdbObj( nId) ;
|
||||
if ( pGdbObj == nullptr)
|
||||
@@ -745,9 +768,10 @@ GeomDB::GetPrevName( int nId, const string& sName) const
|
||||
// recupero il precedente
|
||||
const GdbObj* pGdbPrev = pGdbObj->GetPrev() ;
|
||||
while ( pGdbPrev != nullptr) {
|
||||
// se ha il nome cercato
|
||||
// se ha il nome o la parte iniziale di nome cercato
|
||||
string sObjName ;
|
||||
if ( pGdbPrev->GetName( sObjName) && sObjName == sName)
|
||||
if ( pGdbPrev->GetName( sObjName) &&
|
||||
(( ! bWild && sObjName == sToFind) || ( bWild && sObjName.find( sToFind) == 0)))
|
||||
return ( pGdbPrev->m_nId) ;
|
||||
// passo al precedente
|
||||
pGdbPrev = pGdbPrev->GetPrev() ;
|
||||
|
||||
Reference in New Issue
Block a user