#include <tuladdressstringtokenizer.h>
Link against:
etul.lib
This item is not part of the S60 5th Edition SDK
Class CTulAddressStringTokenizer
class CTulAddressStringTokenizer : public CBase;
Description
Address String Tokenizer API offers methods for parsing phone numbers and e-mail, URL and URI addresses from the given text.
The API consists of the CTulAddressStringTokenizer class.
Usage:
#include <tuladdressstringtokenizer.h>
// SFoundItem instance
CTulAddressStringTokenizer::SFoundItem item;
// Some text
TBufC<256> strSomeText(_L("Mail to [email protected] or call 040 1234567.
You can also tune in to audio feed at rtsp://someplace.com/somefeed.ra."));
// First the user has to create an instance of CTulAddressStringTokenizer by using the
// factory method NewL(). The method takes two parameters. The first
// parameter defines the text to be searched from and the second parameter
// tells what exactly is being looked for.
CTulAddressStringTokenizer singleSearch = CTulAddressStringTokenizer::NewL(strSomeText,
CTulAddressStringTokenizer::EFindItemSearchMailAddressBin);
// The passed text is parsed in construction, and found items can be fetched
// by using the ItemArray() method. It returns a constant array containing
// all the found items. The interface also offers helper functions for
// handling the item array by itself.
// Get count of found items.
TInt count(singleSearch->ItemCount());
// Get currently selected item ([email protected]) to the result1 variable.
singleSearch->Item(item);
TPtrC16 result1(strSomeText.Mid(item.iStartPos, item.iLength));
// Deallocate memory
delete singleSearch;
// Create an instance of CTulAddressStringTokenizer and look for all possible
// things (cases work as binary mask).
CTulAddressStringTokenizer* multiSearch = CTulAddressStringTokenizer::NewL(strSomeText,
(CTulAddressStringTokenizer::EFindItemSearchPhoneNumberBin |
CTulAddressStringTokenizer::EFindItemSearchURLBin |
CTulAddressStringTokenizer::EFindItemSearchMailAddressBin |
CTulAddressStringTokenizer::EFindItemSearchScheme));
// Get count of found items.
TInt count2(multiSearch->ItemCount());
// Get currently selected item to the result2 variable.
multiSearch->Item(item);
// Debug print all items and their type.
for( TInt i=0; i<count2; i++)
{
TPtrC16 result2(strSomeText.Mid(item.iStartPos, item.iLength));
RDebug::Print(_L("Found type %d item:"), item.iItemType);
RDebug::Print(_L("%S"), &result2);
multiSearch->NextItem(item);
}
// Deallocate memory
delete multiSearch;
Derivation
CBase
-
Base class for all classes to be instantiated on the heap.
CTulAddressStringTokenizer
- Address String Tokenizer API offers methods for parsing phone numbers and e-mail...
Members
Defined in CTulAddressStringTokenizer
:
Inherited from CBase
:
Construction and destruction
IMPORT_C static CTulAddressStringTokenizer* NewL(const TDesC &aText, TInt aSearchCases);
Description
Parameters
Return value
NewL(const TDesC &,TInt,TInt)
IMPORT_C static CTulAddressStringTokenizer* NewL(const TDesC &aText, TInt aSearchCases, TInt aMinNumbers);
Description
Parameters
Return value
~CTulAddressStringTokenizer()
IMPORT_C ~CTulAddressStringTokenizer();
Description
Destructor.
IMPORT_C TInt ItemCount() const;
Description
Gets the number of items in the found items array.
Return value
TInt
|
the number of items in the found items array.
|
|
IMPORT_C TBool Item(SFoundItem &aItem) const;
Description
Gets the currently 'selected' item in the array of found items.
Parameters
Return value
TBool
|
ETrue if the item was found. EFalse if the item wasn't found.
|
|
IMPORT_C TBool NextItem(SFoundItem &aItem);
Description
Gets the next found item relative to the currently selected item. Moves the selection to point to the next item in the array
of found items.
Parameters
Return value
TBool
|
ETrue if the item was found. EFalse if there's no next item.
|
|
IMPORT_C TBool PrevItem(SFoundItem &aItem);
Description
Gets the previous found item relative to the currently selected item. Moves the selection to point to the previous item in
the array of found items..
Parameters
Return value
TBool
|
ETrue if the item was found. EFalse if there's no previous item.
|
|
IMPORT_C const CArrayFixFlat< SFoundItem >* ItemArray() const;
Description
Gets the array of found items. Returns a constant pointer to the found items array of the CTulAddressStringTokenizer instance.
The items cannot be modified through this pointer, only accessed. The ownership of the array stays with CTulAddressStringTokenizer.
Return value
IMPORT_C TInt Position() const;
Description
Gets the current position (or the position of the currently selected item) in the found items array.
Return value
TInt
|
the current position in the found items array of the CTulAddressStringTokenizer instance. If no items are in the array, zero
is returned.
|
|
IMPORT_C void ResetPosition();
Description
Resets the position in item array to zero (beginning of the array).
DoNewSearchL(const TDesC &,TInt)
IMPORT_C TInt DoNewSearchL(const TDesC &aText, TInt aSearchCases);
Description
Executes a new search with the already created CTulAddressStringTokenizer instance. The position in the found items array
is reset to the beginning of the array.
Parameters
const TDesC16 &aText |
will be parsed.
|
TInt aSearchCases |
identifies what items are we looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin
EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
|
Return value
TInt
|
number of found items.
|
|
Leave codes
one |
of the Symbian error codes.
|
|
Panic codes
ETulPanicInvalidTokenizerSearchCase |
in debug build if there is no valid search case.
|
ETulPanicDescriptorLength |
in debug build if item's position and/or length is out of the document's range.
|
|
DoNewSearchL(const TDesC &,TInt,TInt)
IMPORT_C TInt DoNewSearchL(const TDesC &aText, TInt aSearchCases, TInt aMinNumbers);
Description
Executes a new search with the already created CTulAddressStringTokenizer instance. The position in the found items array
is reset to the beginning of the array.
Parameters
const TDesC16 &aText |
will be parsed.
|
TInt aSearchCases |
identifies what items are we looking for: EFindItemSearchPhoneNumberBin EFindItemSearchMailAddressBin EFindItemSearchURLBin
EFindItemSearchScheme Any combination of these flags can be given as a bit mask.
|
TInt aMinNumbers |
defines a minimum count of numbers in a phone number string, during a phone number search.
|
|
Return value
TInt
|
number of found items.
|
|
Leave codes
KErrNone, |
if successful; otherwise one of the other system-wide error codes.
|
|
Panic codes
ETulPanicInvalidTokenizerSearchCase |
in debug build if there is no valid search case.
|
ETulPanicDescriptorLength |
in debug build if item's position and/or length is out of the document's range.
|
|
struct SFoundItem;
Description
Members
Defined in CTulAddressStringTokenizer::SFoundItem
:
Member data
iStartPos
TInt iStartPos;
Description
iLength
TInt iLength;
Description
iItemType
TTokenizerSearchCase iItemType;
Description
Enum TTokenizerSearchCase
TTokenizerSearchCase
Description
Enumeration to define the search case. Multiple enumerations can be used as binary mask.