Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#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

Members

Defined in CTulAddressStringTokenizer:

Inherited from CBase:


Construction and destruction


NewL(const TDesC &,TInt)

IMPORT_C static CTulAddressStringTokenizer* NewL(const TDesC &aText, TInt aSearchCases);

Description

Parameters

const TDesC16 &aText

TInt aSearchCases

Return value

CTulAddressStringTokenizer *


NewL(const TDesC &,TInt,TInt)

IMPORT_C static CTulAddressStringTokenizer* NewL(const TDesC &aText, TInt aSearchCases, TInt aMinNumbers);

Description

Parameters

const TDesC16 &aText

TInt aSearchCases

TInt aMinNumbers

Return value

CTulAddressStringTokenizer *


~CTulAddressStringTokenizer()

IMPORT_C ~CTulAddressStringTokenizer();

Description

Destructor.

[Top]


Member functions


ItemCount()const

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.


Item(SFoundItem &)const

IMPORT_C TBool Item(SFoundItem &aItem) const;

Description

Gets the currently 'selected' item in the array of found items.

Parameters

CTulAddressStringTokenizer::SFoundItem &aItem

contains the currently selected item after returning.

Return value

TBool

ETrue if the item was found. EFalse if the item wasn't found.


NextItem(SFoundItem &)

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

CTulAddressStringTokenizer::SFoundItem &aItem

contains the next item after returning.

Return value

TBool

ETrue if the item was found. EFalse if there's no next item.


PrevItem(SFoundItem &)

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

CTulAddressStringTokenizer::SFoundItem &aItem

contains the previous item after returning.

Return value

TBool

ETrue if the item was found. EFalse if there's no previous item.


ItemArray()const

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

const CArrayFixFlat< CTulAddressStringTokenizer::SFoundItem > *

a constant pointer to the array of found items. Ownership stays with CTulAddressStringTokenizer.


Position()const

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.


ResetPosition()

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.

[Top]


Member structures


Struct SFoundItem

struct SFoundItem;

Description

Members

Defined in CTulAddressStringTokenizer::SFoundItem:

Member data


iStartPos

TInt iStartPos;

Description


iLength

TInt iLength;

Description


iItemType

TTokenizerSearchCase iItemType;

Description

[Top]


Member enumerations


Enum TTokenizerSearchCase

TTokenizerSearchCase

Description

Enumeration to define the search case. Multiple enumerations can be used as binary mask.

EFindItemSearchPhoneNumberBin

EFindItemSearchMailAddressBin

EFindItemSearchURLBin

EFindItemSearchScheme