Rev 121 | Rev 165 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "StringList.h"#include "spkdef.h"namespace Utils {CStringList::CStringList(){_lList = new CList<SStringList>();}CStringList::~CStringList(){delete _lList;}void CStringList::pushBack(const String &str, const String &data){SStringList *strNode = new SStringList;strNode->str = str;strNode->data = data;_lList->push_back(strNode);}void CStringList::pushBack(const String &str){pushBack(str, "");}void CStringList::pushFront(const String &str, const String &data){SStringList *strNode = new SStringList;strNode->str = str;strNode->data = data;_lList->push_front(strNode);}void CStringList::pushFront(const String &str){pushFront(str, "");}void CStringList::clear(){_lList->clear();}void CStringList::tokenise(const String &str, const String &token){int max = 0;Utils::String *strs = str.tokenise(token, &max);for ( int i = 0; i < max; i++ ) {this->pushBack(strs[i], Utils::String::Null());}CLEANSPLIT(strs, max);}Utils::String CStringList::firstString(){SStringList *node = _lList->first();if ( node ) return node->str;return Utils::String::Null();}Utils::String CStringList::nextString(){SStringList *node = _lList->next();if ( node ) return node->str;return Utils::String::Null();}Utils::SStringList *CStringList::first(){return _lList->first();}Utils::SStringList *CStringList::next(){return _lList->next();}CStringListIterator CStringList::begin(){return _lList->begin();}CStringListIterator CStringList::end(){return _lList->end();}Utils::SStringList *CStringList::get(int i){return _lList->get(i);}Utils::String CStringList::findData(const Utils::String &data, bool bIgnoreCase) const{for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {if ((*itr)->data.Compare(data, !bIgnoreCase))return (*itr)->str;}return String::Null();}Utils::String CStringList::findString(const Utils::String &str, bool bIgnoreCase) const{for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {if ((*itr)->str.Compare(str, !bIgnoreCase))return (*itr)->data;}return String::Null();}bool CStringList::containsData(const Utils::String &data, bool bIgnoreCase) const{for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {if ((*itr)->data.Compare(data, !bIgnoreCase))return true;}return false;}bool CStringList::changeData(const Utils::String &str, const Utils::String &data, bool bIgnoreCase){for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {if ((*itr)->str.Compare(str, !bIgnoreCase)){(*itr)->data = data;return true;}}return false;}bool CStringList::contains(const Utils::String &str, bool bIgnoreCase) const{for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {if ((*itr)->str.Compare(str, !bIgnoreCase))return true;}return false;}void CStringList::removeAt(int at){_lList->removeAt(at);}bool CStringList::remove(const Utils::String &str, bool single){bool removed = false;CList<Utils::SStringList>::iterator itr = _lList->begin();while (itr != _lList->end()){Utils::SStringList *node = *itr;if (node->str == str){itr = _lList->remove(itr);if (single)break;}else++itr;}return removed;}size_t CStringList::size() const{return _lList->size();}bool CStringList::empty() const{return _lList->empty();}}