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
".
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.