Burger::LinkedListObjects::Object *Burger::LinkedListObjects::GetStringObject(const char *pString) const { Object *pResult = m_pRoot; // Get the first entry if (pResult) { // Should I traverse? Word uCount = m_uCount; Object *pObject = pResult; do { if (!StringCaseCompare(static_cast<const char *>(pObject->GetData()),pString)) { pResult = pObject; break; } pObject = pObject->GetNext(); // Follow the list } while (--uCount); // All done? } return pResult; }
Word Burger::LinkedListObjects::GetStringIndex(const char *pString) const { Word uResult = static_cast<Word>(-1); Object *pObject = m_pRoot; // Get the first entry if (pObject) { // Should I traverse? Word uCount = m_uCount; do { if (!StringCaseCompare(static_cast<const char *>(pObject->GetData()),pString)) { uResult = m_uCount-uCount; // Determine the index number break; } pObject = pObject->GetNext(); // Follow the list } while (--uCount); // All done? } return uResult; }
bool StringTo( bool & dest, const char * src, size_t len ) { if( ! src ) return( false ); if( src[0] == 0 ) { dest = false; return( true ); } if( isdigit( src[0] ) ) { int num = 0; StringTo( num, src, 0, len ); dest = (num) ? true : false; return( true ); } if( ( (len == 1 || (len == NPOS && src[1] == 0 ) ) && ( tolower( src[0] ) == 't' || tolower( src[0] ) == 'y' ) ) || ! StringCaseCompare( src, "true", (len && len < 4) ? len : 4 ) || ! StringCaseCompare( src, "yes", (len && len < 3) ? len : 3 ) || ! StringCaseCompare( src, "on", (len && len < 2) ? len : 2 ) ) { dest = true; return( true ); } if( ( (len == 1 || (len == NPOS && src[1] == 0 ) ) && ( tolower( src[0] ) == 'f' || tolower( src[0] ) == 'n' || tolower( src[0] ) == ' ' ) ) || ! StringCaseCompare( src, "false", ( (len != NPOS && len < 4) ? len : 4 ) ) || ! StringCaseCompare( src, "no", (len != NPOS && len < 2) ? len : 2 ) || ! StringCaseCompare( src, "off", (len != NPOS && len < 3) ? len : 3 ) ) { dest = false; return( true ); } const char * c = src; for( ; ((len != NPOS && ((size_t)(c - src)) < len) || *c != 0) && *c == ' '; c++ ); if( (len != NPOS && ((size_t)(c - src)) == len ) || *c == 0 ) { dest = false; return( true ); } return( false ); }