|
||
class CFragmentedString : protected CArrayPtrFlat< HBufC >;
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.
CArrayPtrFlat< HBufC >
- No description.
CFragmentedString
- Utility that allows a single string to be built from an array of consecutive sub...
Defined in CFragmentedString
:
AddStringL(HBufC *)
Appends a sub-string to the string.AddStringL(const TDesC &)
Copies a sub-string and then appends the copy to the string.CFragmentedString()
Constructor CMarkStack
A stack of string position marks. ConsumeMatched()
Removes and deletes all sub-strings occurring before the position of the last su...ContentL()const
Gets the entire string in a newly-allocated buffer.DeleteMark()
Deletes the head mark. DeleteToMark(const TStringMark &)
Deletes from the current index position to the specified mark.EInsufficientData
String contained insufficient data to perform the match operation.EMatch
There was a complete match. ENoMatch
There was no match. InsertStringL(HBufC *)
Inserts a specified string at the current index position.InsertStringToL(HBufC *,TInt,TInt)
Inserts a string at a specified position.Length()const
Gets the length of the string.Mark()
Adds a mark at the current index position.MarkedL()
Gets a new string containing the string contents from the head mark to the curre...MarkedWithInitialTextL(const TDesC &)
Gets a new string containing the string contents from the head mark to the curre...Match(const TDesC &)
Tests if a specified target string occurs at the current position.MatchNotSelect(const TDesC &)
Tests if the character at the current position does not match any character in a...MatchRange(const TUint,const TUint)
Tests if the character at the current position is within a specified character c...MatchSelect(const TDesC &)
Tests if the character at the current position matches any character in a specif...ReplaceMarkedAndSkipL(HBufC *)
Replaces the string contents to the head mark with a specified string, and then ...ReplaceMarkedL(HBufC *)
Replaces the string contents to the head mark with a specified string.Reset()
Resets the string.ResetToMark()
Moves the current index position to the head mark. StringL()const
Gets a string containing all sub-strings after the current position in a newly-a...TStringMark
A mark at a string position. TStringMatch
Defines possible results of a string matching operation for this class. iCurrentCharacter
Current character position within the current sub-string. iCurrentIndex
Array index of the current sub-string. iMarkStack
Stack of marks in the string.iMatched
Result of the last match operation. iMatchedToCharacter
Current character position within the iMatchedToIndex sub-string found in the la...iMatchedToIndex
Array index of the sub-string found in the last match operation. ~CFragmentedString()
Destructor.IMPORT_C void AddStringL(HBufC *aString);
Appends a sub-string to the string.
|
IMPORT_C void AddStringL(const TDesC &aString);
Copies a sub-string and then appends the copy to the string.
|
IMPORT_C TInt Length() const;
Gets the length of the string.
|
IMPORT_C HBufC* StringL() const;
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.
|
IMPORT_C HBufC* ContentL() const;
Gets the entire string in a newly-allocated buffer.
It is the caller's responsibility to clean up the returned string.
|
IMPORT_C void Reset();
Resets the string.
This resets and destroys the HBufC array, and clears all indexes and marks.
IMPORT_C TStringMatch Match(const TDesC &aString);
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.
|
|
IMPORT_C TStringMatch MatchRange(const TUint aLower, const TUint aUpper);
Tests if the character at the current position is within a specified character code range.
|
|
IMPORT_C TStringMatch MatchSelect(const TDesC &aSelection);
Tests if the character at the current position matches any character in a specified string.
|
|
IMPORT_C TStringMatch MatchNotSelect(const TDesC &aSelection);
Tests if the character at the current position does not match any character in a specified string.
|
|
IMPORT_C void ConsumeMatched();
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.
IMPORT_C HBufC* MarkedL();
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.
|
IMPORT_C HBufC* MarkedWithInitialTextL(const TDesC &aInitialText);
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.
|
|
IMPORT_C void Mark();
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.
IMPORT_C void ReplaceMarkedL(HBufC *aString);
Replaces the string contents to the head mark with a specified string.
|
IMPORT_C void ReplaceMarkedAndSkipL(HBufC *aString);
Replaces the string contents to the head mark with a specified string, and then advances the current index position to the next sub-string.
|
IMPORT_C void InsertStringL(HBufC *aString);
Inserts a specified string at the current index position.
|
protected: IMPORT_C void DeleteToMark(const TStringMark &aStringMark);
Deletes from the current index position to the specified mark.
|
protected: IMPORT_C void InsertStringToL(HBufC *aString, TInt aStringIndex, TInt aLengthIntoString);
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
|
protected: class TStringMark;
A mark at a string position.
Defined in CFragmentedString::TStringMark
:
TStringMark(TInt,TInt)
Constructor.iMarkCharacter
Character position within the sub-string for the mark. iMarkIndex
Array index of the marked sub-string. TStringMark(TInt,TInt)
inline TStringMark(TInt aIndex, TInt aCharacter);
Constructor.
|
iMarkIndex
TInt iMarkIndex;
Array index of the marked sub-string.
iMarkCharacter
TInt iMarkCharacter;
Character position within the sub-string for the mark.
TStringMatch
Defines possible results of a string matching operation for this class.
|
protected: typedef CStack<TStringMark, ETrue> CFragmentedString::CMarkStack;
A stack of string position marks.
protected: TInt iMatchedToIndex;
Array index of the sub-string found in the last match operation.
protected: TInt iMatchedToCharacter;
Current character position within the iMatchedToIndex sub-string found in the last match operation.
protected: TInt iCurrentCharacter;
Current character position within the current sub-string.
protected: CMarkStack iMarkStack;
Stack of marks in the string.
CFragmentedString::Mark()
pushes a mark on the stack; CFragmentedString::DeleteMark()
pops one off.