Parsing Delimited Data

This tutorial describes the steps to parse delimited data. The data in the URI that is delimited into segments can be parsed using the TDelimitedXxxxParser8 classes.

Context

TDelimitedXxxxParser8 classes provide functionalities to parse delimited data, extract the current segment and parse the string for the next segment.

Use the class derived from TDelimitedParserBase8 for implementing the function provided by TDelimitedXxxxParser8.

The following three classes are used to parse the respective URI components:

Prerequisites

Parse the delimited data using the following functionalities of TDelimitedXxxxParser8:
  • Set the delimiter (before parsing the data) to a specific character using SetDelimiter(). For example:

    //set the delimiter character to '/'
    SetDelimiter(TChar('/'));
  • Parse the data into segments from left to right using Parse().

  • Parse the data into segments from right to left using ParseReverse().

    Note: Parse the data into segments before calling any of the functions described in the following steps.

  • Parse to the next segment using Inc().

  • Get the descriptor reference with the data using Des().

  • Get the current segment and parse the data to the next segment using GetNext().

  • Get the current segment using Peek().

  • Get the remaining data from (and including) the current segment using Remainder().

Steps

  • TDelimitedPathParser8 for parsing path into directories separated by '/'. For example: /doc_source/guide/N10047/index.html.

  • TDelimitedPathSegmentParser8 for parsing parameters that are separated by ';' For example: postd=pp22;isub=1411@foo.com;user=phone.

  • TDelimitedQueryParser8 for parsing the query string (after a '?') into name/value pairs that is separated by '&'. For example: sortcol=4&table=1&up=0&view=details

    The following table shows the delimiter to be used to separate each of the URI components:

    URI Component

    Delimiter

    Path

    /

    Path segment

    ;

    Query

    &

Related concepts