Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <CFragmentedString.h>
Link against: bnf.lib

Class CFragmentedString

class CFragmentedString : protected CArrayPtrFlat< HBufC >;

Description

Utility that allows a single string to be built from an array of consecutive sub-strings.

The sub-strings can be inserted by reference or copied.

The object maintains information that points to a current position within the string. A typical use is to test the contents of the string using one of the Match...() functions, and then use CFragmentedString::ConsumeMatched() to advance past the matched area.

The class also supports inserting an unlimited number of marks in the string, and performing operations relative to the head (i.e. last inserted) mark.

Derivation

Members

Defined in CFragmentedString:


Construction and destruction


CFragmentedString()

IMPORT_C CFragmentedString();

Description

Constructor


~CFragmentedString()

IMPORT_C ~CFragmentedString();

Description

Destructor.

This resets and destroys the HBufC array.

[Top]


Member functions


AddStringL(HBufC *)

IMPORT_C void AddStringL(HBufC *aString);

Description

Appends a sub-string to the string.

Parameters

HBufC16 *aString

Sub-string to append


AddStringL(const TDesC &)

IMPORT_C void AddStringL(const TDesC &aString);

Description

Copies a sub-string and then appends the copy to the string.

Parameters

const TDesC16 &aString

Sub-string to append


Length()const

IMPORT_C TInt Length() const;

Description

Gets the length of the string.

Return value

TInt

String length


StringL()const

IMPORT_C HBufC* StringL() const;

Description

Gets a string containing all sub-strings after the current position in a newly-allocated buffer.

It is the caller's responsibility to clean up the returned string.

Return value

HBufC16 *

String containing all sub-strings after the current position in a newly-allocated buffer


ContentL()const

IMPORT_C HBufC* ContentL() const;

Description

Gets the entire string in a newly-allocated buffer.

It is the caller's responsibility to clean up the returned string.

Return value

HBufC16 *

Entire string in a newly-allocated buffer


Reset()

IMPORT_C void Reset();

Description

Resets the string.

This resets and destroys the HBufC array, and clears all indexes and marks.


Match(const TDesC &)

IMPORT_C TStringMatch Match(const TDesC &aString);

Description

Tests if a specified target string occurs at the current position.

The function does a byte-for-byte comparison of the string contents from the current position against aString.

Parameters

const TDesC16 &aString

String to attempt to match

Return value

CFragmentedString::TStringMatch

Match result


MatchRange(const TUint,const TUint)

IMPORT_C TStringMatch MatchRange(const TUint aLower, const TUint aUpper);

Description

Tests if the character at the current position is within a specified character code range.

Parameters

const TUint aLower

Lower range (inclusive) for a match

const TUint aUpper

Upper range (inclusive) for a match

Return value

CFragmentedString::TStringMatch

Match result


MatchSelect(const TDesC &)

IMPORT_C TStringMatch MatchSelect(const TDesC &aSelection);

Description

Tests if the character at the current position matches any character in a specified string.

Parameters

const TDesC16 &aSelection

String specifying one or more characters, any of which will result in a successful match

Return value

CFragmentedString::TStringMatch

Match result


MatchNotSelect(const TDesC &)

IMPORT_C TStringMatch MatchNotSelect(const TDesC &aSelection);

Description

Tests if the character at the current position does not match any character in a specified string.

Parameters

const TDesC16 &aSelection

String specifying one or more characters, any of which will result in a failed match

Return value

CFragmentedString::TStringMatch

Match result


ConsumeMatched()

IMPORT_C void ConsumeMatched();

Description

Removes and deletes all sub-strings occurring before the position of the last successful match.

Any sub-strings at or after a mark are not deleted, regardless of the last successful match position.


MarkedL()

IMPORT_C HBufC* MarkedL();

Description

Gets a new string containing the string contents from the head mark to the current index position.

It is the caller's responsibility to clean up the returned string.

Return value

HBufC16 *

New string containing marked contents


MarkedWithInitialTextL(const TDesC &)

IMPORT_C HBufC* MarkedWithInitialTextL(const TDesC &aInitialText);

Description

Gets a new string containing the string contents from the head mark to the current index position, prepended with a specified string.

It is the caller's responsibility to clean up the returned string.

Parameters

const TDesC16 &aInitialText

String to prepend to the result

Return value

HBufC16 *

New string containing aInitialText and then the marked contents


Mark()

IMPORT_C void Mark();

Description

Adds a mark at the current index position.

This mark becomes the head mark.

Note this function can leave with an out of memory error.


DeleteMark()

IMPORT_C void DeleteMark();

Description

Deletes the head mark.


ResetToMark()

IMPORT_C void ResetToMark();

Description

Moves the current index position to the head mark.


ReplaceMarkedL(HBufC *)

IMPORT_C void ReplaceMarkedL(HBufC *aString);

Description

Replaces the string contents to the head mark with a specified string.

Parameters

HBufC16 *aString

Replacment string


ReplaceMarkedAndSkipL(HBufC *)

IMPORT_C void ReplaceMarkedAndSkipL(HBufC *aString);

Description

Replaces the string contents to the head mark with a specified string, and then advances the current index position to the next sub-string.

Parameters

HBufC16 *aString

Replacment string


InsertStringL(HBufC *)

IMPORT_C void InsertStringL(HBufC *aString);

Description

Inserts a specified string at the current index position.

Parameters

HBufC16 *aString

String to insert


DeleteToMark(const TStringMark &)

protected: IMPORT_C void DeleteToMark(const TStringMark &aStringMark);

Description

Deletes from the current index position to the specified mark.

Parameters

const CFragmentedString::TStringMark &aStringMark

Mark to delete to


InsertStringToL(HBufC *,TInt,TInt)

protected: IMPORT_C void InsertStringToL(HBufC *aString, TInt aStringIndex, TInt aLengthIntoString);

Description

Inserts a string at a specified position.

1. if aLengthIntoString is 0, the function inserts a new sub-string at array position aStringIndex

2. if aLengthIntoString is equal to the length of the sub-string at aStringIndex, then it inserts a new sub-string at array position aStringIndex+1.

3. If aLengthIntoString is in the middle of theaStringIndex sub-string, then it:

a) inserts a new sub-string at aStringIndex+1 holdingaString

b) inserts a new sub-string at aStringIndex+2 holding the data from aStringIndex after aLengthIntoString

c) truncates the original aStringIndex to hold only the data before aLengthIntoString

Parameters

HBufC16 *aString

String to insert

TInt aStringIndex

Array index of the sub-string at which to insert

TInt aLengthIntoString

Character position within the sub-string at which to insert

[Top]


Member classes


Class TStringMark

protected: class TStringMark;

Description

A mark at a string position.

Members

Defined in CFragmentedString::TStringMark:

Construction and destruction


TStringMark(TInt,TInt)

inline TStringMark(TInt aIndex, TInt aCharacter);

Description

Constructor.

Parameters

TInt aIndex

Array index of the marked sub-string

TInt aCharacter

Character position within the sub-string for the mark

Member data


iMarkIndex

TInt iMarkIndex;

Description

Array index of the marked sub-string.


iMarkCharacter

TInt iMarkCharacter;

Description

Character position within the sub-string for the mark.

[Top]


Member enumerations


Enum TStringMatch

TStringMatch

Description

Defines possible results of a string matching operation for this class.

ENoMatch

There was no match.

EMatch

There was a complete match.

EInsufficientData

String contained insufficient data to perform the match operation.

This can mean that the start of the target string was matched, but the string being searched ended before a complete match was found.

[Top]


Member type definitions


Typedef CMarkStack

protected: typedef CStack<TStringMark, ETrue> CFragmentedString::CMarkStack;

Description

A stack of string position marks.

[Top]


Member data


iMatched

protected: TStringMatch iMatched;

Description

Result of the last match operation.


iMatchedToIndex

protected: TInt iMatchedToIndex;

Description

Array index of the sub-string found in the last match operation.


iMatchedToCharacter

protected: TInt iMatchedToCharacter;

Description

Current character position within the iMatchedToIndex sub-string found in the last match operation.


iCurrentIndex

protected: TInt iCurrentIndex;

Description

Array index of the current sub-string.


iCurrentCharacter

protected: TInt iCurrentCharacter;

Description

Current character position within the current sub-string.


iMarkStack

protected: CMarkStack iMarkStack;

Description

Stack of marks in the string.

CFragmentedString::Mark() pushes a mark on the stack; CFragmentedString::DeleteMark() pops one off.