blob: 5f30d085a1dae7035deaf58db6325cc35a661178 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/*
* Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
* Contact: http://www.qt-project.org/legal
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
* CFindText Test module
*
*/
#include "cfindtext.h"
CFindText* CFindText::NewLC
(const TDesC& aText)
{
CFindText* self = new(ELeave) CFindText;
CleanupStack::PushL(self);
self->ConstructL(aText);
return self;
}
CFindText::~CFindText()
{
iWords.Close();
delete iText;
}
TInt CFindText::MdcaCount() const
{
return iWords.Count();
}
TPtrC16 CFindText::MdcaPoint(TInt aIndex) const
{
return iWords[aIndex];
}
void CFindText::ConstructL(const TDesC& aText)
{
for (TInt beg=0; beg < aText.Length(); ++beg)
{
// Skip space before next word
if (!TChar(aText[beg]).IsSpace())
{
// Scan the end of the word
TInt end = beg;
for (; end < aText.Length() && !TChar(aText[end]).IsSpace(); ++end)
{
}
const TInt len = end-beg;
// Append found word to the array
User::LeaveIfError(iWords.Append(aText.Mid(beg,len)));
// Scan for next word
beg = end;
}
}
iText = aText.AllocL();
}
|