Subversion Repositories spk

Rev

Rev 179 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 179 Rev 196
Line 11... Line 11...
11
	CStringList::~CStringList()
11
	CStringList::~CStringList()
12
	{
12
	{
13
		delete _lList;
13
		delete _lList;
14
	}
14
	}
15
 
15
 
16
	void CStringList::pushBack(const String &str, const String &data)
16
	void CStringList::pushBack(const SString &str, const SString &data)
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);
Line 35... Line 35...
35
		{
35
		{
36
			delete _lList->back();
36
			delete _lList->back();
37
			_lList->pop_back();
37
			_lList->pop_back();
38
		}
38
		}
39
	}
39
	}
40
	void CStringList::pushBack(const String &str)
40
	void CStringList::pushBack(const SString &str)
41
	{
41
	{
42
		pushBack(str, "");
42
		pushBack(str, "");
43
	}
43
	}
44
 
44
 
45
	void CStringList::pushFront(const String &str, const String &data)
45
	void CStringList::pushFront(const SString &str, const SString &data)
46
	{
46
	{
47
		SStringList *strNode = new SStringList;
47
		SStringList *strNode = new SStringList;
48
		strNode->str = str;
48
		strNode->str = str;
49
		strNode->data = data;
49
		strNode->data = data;
50
		_lList->push_front(strNode);
50
		_lList->push_front(strNode);
51
	}
51
	}
52
	void CStringList::pushFront(const String &str)
52
	void CStringList::pushFront(const SString &str)
53
	{
53
	{
54
		pushFront(str, "");
54
		pushFront(str, "");
55
	}
55
	}
56
 
56
 
57
	void CStringList::insertAt(int at, const String& str, const String& data)
57
	void CStringList::insertAt(int at, const SString& str, const SString& data)
58
	{
58
	{
59
		SStringList* strNode = new SStringList;
59
		SStringList* strNode = new SStringList;
60
		strNode->str = str;
60
		strNode->str = str;
61
		strNode->data = data;
61
		strNode->data = data;
62
		_lList->insertAt(at, strNode);
62
		_lList->insertAt(at, strNode);
63
	}
63
	}
64
	void CStringList::insertAt(int at, const String& str)
64
	void CStringList::insertAt(int at, const SString& str)
65
	{
65
	{
66
		insertAt(at, str, "");
66
		insertAt(at, str, "");
67
	}
67
	}
68
 
68
 
69
	void CStringList::clear()
69
	void CStringList::clear()
70
	{
70
	{
71
		_lList->clear();
71
		_lList->clear();
72
	}
72
	}
73
 
73
 
74
	void CStringList::tokenise(const String &str, const String &token)
74
	void CStringList::tokenise(const SString &str, const SString &token)
75
	{
75
	{
76
		int max = 0;
76
		int max = 0;
77
		Utils::String *strs = str.tokenise(token, &max);
77
		Utils::SString *strs = str.tokenise(token, &max);
78
		for ( int i = 0; i < max; i++ ) {
78
		for ( int i = 0; i < max; i++ ) {
79
			this->pushBack(strs[i], Utils::String::Null());
79
			this->pushBack(strs[i], Utils::SString::Null());
80
		}
80
		}
81
 
81
 
82
		CLEANSPLIT(strs, max);
82
		CLEANSPLIT(strs, max);
83
	}
83
	}
84
 
84
 
85
	Utils::String CStringList::firstString()
85
	Utils::SString CStringList::firstString()
86
	{
86
	{
87
		SStringList *node = _lList->first();
87
		SStringList *node = _lList->first();
88
		if ( node ) return node->str;
88
		if ( node ) return node->str;
89
		return Utils::String::Null();
89
		return Utils::SString::Null();
90
	}
90
	}
91
 
91
 
92
	Utils::String CStringList::nextString()
92
	Utils::SString CStringList::nextString()
93
	{
93
	{
94
		SStringList *node = _lList->next();
94
		SStringList *node = _lList->next();
95
		if ( node ) return node->str;
95
		if ( node ) return node->str;
96
		return Utils::String::Null();
96
		return Utils::SString::Null();
97
	}
97
	}
98
 
98
 
99
	Utils::SStringList *CStringList::first()
99
	Utils::SStringList *CStringList::first()
100
	{
100
	{
101
		return _lList->first();
101
		return _lList->first();
Line 114... Line 114...
114
	CStringListIterator CStringList::end() const
114
	CStringListIterator CStringList::end() const
115
	{
115
	{
116
		return _lList->end();
116
		return _lList->end();
117
	}
117
	}
118
 
118
 
119
	Utils::String CStringList::front() const
119
	Utils::SString CStringList::front() const
120
	{
120
	{
121
		auto front = _lList->front();
121
		auto front = _lList->front();
122
		if (front)
122
		if (front)
123
			return front->str;
123
			return front->str;
124
		return Utils::String::Null();
124
		return Utils::SString::Null();
125
	}
125
	}
126
 
126
 
127
	Utils::String CStringList::back() const
127
	Utils::SString CStringList::back() const
128
	{
128
	{
129
		auto front = _lList->back();
129
		auto front = _lList->back();
130
		if (front)
130
		if (front)
131
			return front->str;
131
			return front->str;
132
		return Utils::String::Null();
132
		return Utils::SString::Null();
133
	}
133
	}
134
 
134
 
135
	Utils::SStringList *CStringList::get(int i) const
135
	Utils::SStringList *CStringList::get(int i) const
136
	{
136
	{
137
		return _lList->get(i);
137
		return _lList->get(i);
138
	}
138
	}
139
 
139
 
140
	Utils::String CStringList::findData(const Utils::String &data, bool bIgnoreCase) const
140
	Utils::SString CStringList::findData(const Utils::SString &data, bool bIgnoreCase) const
141
	{
141
	{
142
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
142
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
143
			if ((*itr)->data.Compare(data, !bIgnoreCase))
143
			if ((*itr)->data.Compare(data, !bIgnoreCase))
144
				return (*itr)->str;
144
				return (*itr)->str;
145
		}
145
		}
146
 
146
 
147
		return String::Null();
147
		return SString::Null();
148
	}
148
	}
149
 
149
 
150
	Utils::String CStringList::findString(const Utils::String &str, bool bIgnoreCase) const
150
	Utils::SString CStringList::findString(const Utils::SString &str, bool bIgnoreCase) const
151
	{
151
	{
152
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
152
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
153
			if ((*itr)->str.Compare(str, !bIgnoreCase))
153
			if ((*itr)->str.Compare(str, !bIgnoreCase))
154
				return (*itr)->data;
154
				return (*itr)->data;
155
		}
155
		}
156
 
156
 
157
		return String::Null();
157
		return SString::Null();
158
	}
158
	}
159
 
159
 
160
	int CStringList::findStringAndData(const Utils::String& str, const Utils::String& data, bool bIgnoreCase) const
160
	int CStringList::findStringAndData(const Utils::SString& str, const Utils::SString& data, bool bIgnoreCase) const
161
	{
161
	{
162
		size_t pos = 0;
162
		size_t pos = 0;
163
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
163
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
164
			if ((*itr)->str.Compare(str, !bIgnoreCase))
164
			if ((*itr)->str.Compare(str, !bIgnoreCase))
165
			{
165
			{
Line 169... Line 169...
169
		}
169
		}
170
 
170
 
171
		return -1;
171
		return -1;
172
	}
172
	}
173
 
173
 
174
	int CStringList::findPos(const Utils::String& str, bool bIgnoreCase) const
174
	int CStringList::findPos(const Utils::SString& str, bool bIgnoreCase) const
175
	{
175
	{
176
		size_t pos = 0;
176
		size_t pos = 0;
177
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
177
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
178
			if ((*itr)->str.Compare(str, !bIgnoreCase))
178
			if ((*itr)->str.Compare(str, !bIgnoreCase))
179
				return static_cast<int>(pos);
179
				return static_cast<int>(pos);
180
		}
180
		}
181
 
181
 
182
		return -1;
182
		return -1;
183
	}
183
	}
184
 
184
 
185
	bool CStringList::containsStringAndData(const Utils::String& str, const Utils::String& data, bool bIgnoreCase) const
185
	bool CStringList::containsStringAndData(const Utils::SString& str, const Utils::SString& data, bool bIgnoreCase) const
186
	{
186
	{
187
		size_t pos = 0;
187
		size_t pos = 0;
188
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
188
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++, pos++) {
189
			if ((*itr)->str.Compare(str, !bIgnoreCase))
189
			if ((*itr)->str.Compare(str, !bIgnoreCase))
190
			{
190
			{
Line 194... Line 194...
194
		}
194
		}
195
 
195
 
196
		return false;
196
		return false;
197
	}
197
	}
198
 
198
 
199
	bool CStringList::containsData(const Utils::String &data, bool bIgnoreCase) const
199
	bool CStringList::containsData(const Utils::SString &data, bool bIgnoreCase) const
200
	{
200
	{
201
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
201
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
202
			if ((*itr)->data.Compare(data, !bIgnoreCase))
202
			if ((*itr)->data.Compare(data, !bIgnoreCase))
203
				return true;
203
				return true;
204
		}
204
		}
205
 
205
 
206
		return false;
206
		return false;
207
	}
207
	}
208
 
208
 
209
	bool CStringList::changeData(const Utils::String &str, const Utils::String &data, bool bIgnoreCase)
209
	bool CStringList::changeData(const Utils::SString &str, const Utils::SString &data, bool bIgnoreCase)
210
	{
210
	{
211
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
211
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
212
			if ((*itr)->str.Compare(str, !bIgnoreCase))
212
			if ((*itr)->str.Compare(str, !bIgnoreCase))
213
			{
213
			{
214
				(*itr)->data = data;
214
				(*itr)->data = data;
Line 217... Line 217...
217
		}
217
		}
218
 
218
 
219
		return false;
219
		return false;
220
	}
220
	}
221
 
221
 
222
	bool CStringList::contains(const Utils::String &str, bool bIgnoreCase) const
222
	bool CStringList::contains(const Utils::SString &str, bool bIgnoreCase) const
223
	{
223
	{
224
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
224
		for (CList<SStringList>::iterator itr = _lList->begin(); itr != _lList->end(); itr++) {
225
			if ((*itr)->str.Compare(str, !bIgnoreCase))
225
			if ((*itr)->str.Compare(str, !bIgnoreCase))
226
				return true;
226
				return true;
227
		}
227
		}
Line 242... Line 242...
242
 
242
 
243
	CStringListIterator CStringList::remove(CStringListIterator itr)
243
	CStringListIterator CStringList::remove(CStringListIterator itr)
244
	{
244
	{
245
		return _lList->remove(itr);
245
		return _lList->remove(itr);
246
	}
246
	}
247
	bool CStringList::remove(const Utils::String &str, bool single)
247
	bool CStringList::remove(const Utils::SString &str, bool single)
248
	{
248
	{
249
		bool removed = false;
249
		bool removed = false;
250
 
250
 
251
		CList<Utils::SStringList>::iterator itr = _lList->begin();
251
		CList<Utils::SStringList>::iterator itr = _lList->begin();
252
		while (itr != _lList->end())
252
		while (itr != _lList->end())