Subversion Repositories spk

Rev

Rev 112 | Rev 121 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8 cycrow 1
 
2
#include "StringList.h"
98 cycrow 3
#include "spkdef.h"
8 cycrow 4
 
5
namespace Utils {
112 cycrow 6
	CStringList::CStringList()
7
	{
8
		_lList = new CList<SStringList>();
9
	}
10
 
11
	CStringList::~CStringList()
12
	{
13
		delete _lList;
14
	}
15
 
8 cycrow 16
	void CStringList::pushBack(const String &str, const String &data)
17
	{
18
		SStringList *strNode = new SStringList;
19
		strNode->str = str;
20
		strNode->data = data;
112 cycrow 21
		_lList->push_back(strNode);
8 cycrow 22
	}
111 cycrow 23
	void CStringList::pushBack(const String &str)
24
	{
25
		pushBack(str, "");
26
	}
9 cycrow 27
 
28
	void CStringList::clear()
29
	{
112 cycrow 30
		_lList->clear();
9 cycrow 31
	}
98 cycrow 32
 
33
	void CStringList::tokenise(const String &str, const String &token)
34
	{
35
		int max = 0;
36
		Utils::String *strs = str.tokenise(token, &max);
37
		for ( int i = 0; i < max; i++ ) {
38
			this->pushBack(strs[i], Utils::String::Null());
39
		}
40
 
41
		CLEANSPLIT(strs, max);
42
	}
43
 
44
	Utils::String CStringList::firstString()
45
	{
112 cycrow 46
		SStringList *node = _lList->first();
98 cycrow 47
		if ( node ) return node->str;
48
		return Utils::String::Null();
49
	}
50
 
51
	Utils::String CStringList::nextString()
52
	{
112 cycrow 53
		SStringList *node = _lList->next();
98 cycrow 54
		if ( node ) return node->str;
55
		return Utils::String::Null();
56
	}
101 cycrow 57
 
112 cycrow 58
	Utils::SStringList *CStringList::first()
59
	{
60
		return _lList->first();
61
	}
62
 
63
	Utils::SStringList *CStringList::next()
64
	{
65
		return _lList->next();
66
	}
67
 
68
	CStringListIterator CStringList::begin()
69
	{
70
		return _lList->begin();
71
	}
72
 
73
	CStringListIterator CStringList::end()
74
	{
75
		return _lList->end();
76
	}
77
 
116 cycrow 78
	Utils::SStringList *CStringList::get(int i)
79
	{
80
		return _lList->get(i);
81
	}
82
 
101 cycrow 83
	Utils::String CStringList::findData(const Utils::String &data, bool bIgnoreCase) const
84
	{
112 cycrow 85
		for(CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
86
			if ( (*itr)->data.Compare(data, !bIgnoreCase) )
87
				return (*itr)->str;
101 cycrow 88
		}
89
 
90
		return String::Null();
91
	}
92
 
93
	Utils::String CStringList::findString(const Utils::String &str, bool bIgnoreCase) const
94
	{
112 cycrow 95
		for(CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
96
			if ( (*itr)->str.Compare(str, !bIgnoreCase) )
97
				return (*itr)->data;
101 cycrow 98
		}
99
 
100
		return String::Null();
101
	}
8 cycrow 102
 
112 cycrow 103
	size_t CStringList::size() const
104
	{
105
		return _lList->size();
106
	}
107
 
108
	bool CStringList::empty() const
109
	{
110
		return _lList->empty();
111
	}
8 cycrow 112
}