Modifying
the Data and Delimiter
This tutorial describes the steps to modify the data and delimiter.
HTTP Utilities Library provides CDelimitedXxxx8 classes
to modify the data and the delimiter.
Use
CDelimitedXxxx8 classes to parse,
add or remove the delimiter and segment within the URI.
Note: TDelimitedXxxxParser8 classes
provide the functionality only for parsing.
CDelimitedPath8, CDelimitedPathSegment8 and CDelimitedQuery8 classes are derived from CDelimitedDataBase to
add and remove data and delimiters from the respective component. CDelimitedXxxx8 classes
provide the following functionality:
SetDelimiter(), Parse() and ParseReverse() functions
are used to set the delimiter and parse the data.
ParseReverse() is used, for example, when you want
to extract the file name. For more details on parsing the delimited data,
refer to Parsing the
delimited data.
Note: Delimiter must be set before the data is parsed.
The
following are some of the URI data and delimiter modifications that can be
performed on a URI:
_LIT8(KPath,"c:/myfolder");
_LIT8(KLogs,"logs");
//Create CDelimitedPath8 object
CDelimitedPath8* dpath = CDelimitedPath8::NewL(KPath);
Removing a segment: The following code removes the first segment
from the data.
dpath->PopFrontL();
// remove first segment containing "c:"
const TDesC8& des = dpath->Parser().Des();
Here, des holds "/myfolder/logs"
after removing "c:". To remove the last segment from
the data, use PopBackL().
Adding a segment: The following code adds a new segment at
the end of the data.
dpath->PushBackL(KLogs);
// add "logs" at the end
const TDesC8& des = dpath->Parser().Des();
Here, des holds "c:/myfolder/logs"
after adding "logs". To add a new segment at the beginning of the data, use PushFrontL().
Removing a delimiter: The following code removes the delimiter
from the beginning of the data.
dpath->TrimFrontDelimiterL();
// remove delimiter "/" at the beginning
const TDesC8& des = dpath->Parser().Des();
Here, des holds "myfolder/logs"
after removing "/". To add the delimiter at the beginning or at the end of
the data, use AddFrontDelimiterL() and AddBackDelimiterL() respectively.
Parsing data and removing the current segment of data: The
following code parses the data and removes the current segment of data.
//Parse before removing the segment
dpath->Parse();
//remove the current segment
dpath->RemoveCurrentL();
// parse the data after removing "myfolder"
const TDesC8& des = dpath->Parser().Des();
Here, des holds "/logs"
after removing "myfolder".
Note: The data must be
parsed after removing the segment.
Adding a delimiter: The following code inserts a new segment
before the current parsed segment.
// data to insert
_LIT8(KHolyfolder,"Holyfolder");
//insert a new segment before the current segment
dpath->InsertCurrentL(KHolyfolder);
// parse the data after inserting "Holyfolder"
const TDesC8& des = dpath->Parser().Des();
Here, des holds "/Holyfolder/logs" after
inserting "Holyfolder".