Subversion Repositories spk

Rev

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

Rev 124 Rev 160
Line 17... Line 17...
17
	{
17
	{
18
		SStringList *strNode = new SStringList;
18
		SStringList *strNode = new SStringList;
19
		strNode->str = str;
19
		strNode->str = str;
20
		strNode->data = data;
20
		strNode->data = data;
21
		_lList->push_back(strNode);
21
		_lList->push_back(strNode);
-
 
22
	}
-
 
23
 
-
 
24
	void CStringList::popBack()
-
 
25
	{
-
 
26
		if (!_lList->empty())
-
 
27
		{
-
 
28
			delete _lList->back();
-
 
29
			_lList->pop_back();
-
 
30
		}
22
	}
31
	}
23
	void CStringList::pushBack(const String &str)
32
	void CStringList::pushBack(const String &str)
24
	{
33
	{
25
		pushBack(str, "");
34
		pushBack(str, "");
26
	}
35
	}
Line 33... Line 42...
33
		_lList->push_front(strNode);
42
		_lList->push_front(strNode);
34
	}
43
	}
35
	void CStringList::pushFront(const String &str)
44
	void CStringList::pushFront(const String &str)
36
	{
45
	{
37
		pushFront(str, "");
46
		pushFront(str, "");
-
 
47
	}
-
 
48
 
-
 
49
	void CStringList::insertAt(int at, const String& str, const String& data)
-
 
50
	{
-
 
51
		SStringList* strNode = new SStringList;
-
 
52
		strNode->str = str;
-
 
53
		strNode->data = data;
-
 
54
		_lList->insertAt(at, strNode);
-
 
55
	}
-
 
56
	void CStringList::insertAt(int at, const String& str)
-
 
57
	{
-
 
58
		insertAt(at, str, "");
38
	}
59
	}
39
 
60
 
40
	void CStringList::clear()
61
	void CStringList::clear()
41
	{
62
	{
42
		_lList->clear();
63
		_lList->clear();
43
	}
64
	}
44
 
65
 
45
	void CStringList::tokenise(const String &str, const String &token)
66
	void CStringList::tokenise(const String &str, const String &token)
46
	{
67
	{
47
		int max = 0;
68
		int max = 0;
48
		Utils::String *strs = str.tokenise(token, &max);
69
		Utils::String *strs = str.tokenise(token, &max);
49
		for ( int i = 0; i < max; i++ ) {
70
		for ( int i = 0; i < max; i++ ) {
50
			this->pushBack(strs[i], Utils::String::Null());
71
			this->pushBack(strs[i], Utils::String::Null());
51
		}
72
		}
52
 
73
 
53
		CLEANSPLIT(strs, max);
74
		CLEANSPLIT(strs, max);
54
	}
75
	}
55
 
76
 
56
	Utils::String CStringList::firstString()
77
	Utils::String CStringList::firstString()
57
	{
78
	{
58
		SStringList *node = _lList->first();
79
		SStringList *node = _lList->first();
59
		if ( node ) return node->str;
80
		if ( node ) return node->str;
60
		return Utils::String::Null();
81
		return Utils::String::Null();
Line 75... Line 96...
75
	Utils::SStringList *CStringList::next()
96
	Utils::SStringList *CStringList::next()
76
	{
97
	{
77
		return _lList->next();
98
		return _lList->next();
78
	}
99
	}
79
 
100
 
80
	CStringListIterator CStringList::begin()
101
	CStringListIterator CStringList::begin() const
81
	{
102
	{
82
		return _lList->begin();
103
		return _lList->begin();
83
	}
104
	}
84
 
105
 
85
	CStringListIterator CStringList::end()
106
	CStringListIterator CStringList::end() const
86
	{
107
	{
87
		return _lList->end();
108
		return _lList->end();
-
 
109
	}
-
 
110
 
-
 
111
	Utils::String CStringList::front() const
-
 
112
	{
-
 
113
		auto front = _lList->front();
-
 
114
		if (front)
-
 
115
			return front->str;
-
 
116
		return Utils::String::Null();
-
 
117
	}
-
 
118
 
-
 
119
	Utils::String CStringList::back() const
-
 
120
	{
-
 
121
		auto front = _lList->back();
-
 
122
		if (front)
-
 
123
			return front->str;
-
 
124
		return Utils::String::Null();
88
	}
125
	}
89
 
126
 
90
	Utils::SStringList *CStringList::get(int i)
127
	Utils::SStringList *CStringList::get(int i)
91
	{
128
	{
92
		return _lList->get(i);
129
		return _lList->get(i);
Line 95... Line 132...
95
	Utils::String CStringList::findData(const Utils::String &data, bool bIgnoreCase) const
132
	Utils::String CStringList::findData(const Utils::String &data, bool bIgnoreCase) const
96
	{
133
	{
97
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
134
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
98
			if ((*itr)->data.Compare(data, !bIgnoreCase))
135
			if ((*itr)->data.Compare(data, !bIgnoreCase))
99
				return (*itr)->str;
136
				return (*itr)->str;
100
		}
137
		}
-
 
138
 
-
 
139
		return String::Null();
-
 
140
	}
-
 
141
 
-
 
142
	Utils::String CStringList::findString(const Utils::String &str, bool bIgnoreCase) const
-
 
143
	{
-
 
144
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
-
 
145
			if ((*itr)->str.Compare(str, !bIgnoreCase))
-
 
146
				return (*itr)->data;
-
 
147
		}
101
 
148
 
102
		return String::Null();
149
		return String::Null();
103
	}
150
	}
104
 
151
 
105
	Utils::String CStringList::findString(const Utils::String &str, bool bIgnoreCase) const
152
	int CStringList::findStringAndData(const Utils::String& str, const Utils::String& data, bool bIgnoreCase) const
-
 
153
	{
-
 
154
		size_t pos = 0;
-
 
155
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
-
 
156
			if ((*itr)->str.Compare(str, !bIgnoreCase))
-
 
157
			{
-
 
158
				if ((*itr)->data.Compare(data, !bIgnoreCase))
-
 
159
					return static_cast<int>(pos);
-
 
160
			}
-
 
161
		}
-
 
162
 
-
 
163
		return -1;
-
 
164
	}
-
 
165
 
-
 
166
	bool CStringList::containsStringAndData(const Utils::String& str, const Utils::String& data, bool bIgnoreCase) const
106
	{
167
	{
-
 
168
		size_t pos = 0;
107
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
169
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
108
			if ((*itr)->str.Compare(str, !bIgnoreCase))
170
			if ((*itr)->str.Compare(str, !bIgnoreCase))
-
 
171
			{
-
 
172
				if ((*itr)->data.Compare(data, !bIgnoreCase))
109
				return (*itr)->data;
173
					return true;
-
 
174
			}
110
		}
175
		}
111
 
176
 
112
		return String::Null();
177
		return false;
113
	}
178
	}
114
 
179
 
115
	bool CStringList::containsData(const Utils::String &data, bool bIgnoreCase) const
180
	bool CStringList::containsData(const Utils::String &data, bool bIgnoreCase) const
116
	{
181
	{
117
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
182
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {