Subversion Repositories spk

Rev

Rev 111 | Rev 116 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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