parsetext
parsetext |
Purpose
Extract a text from a text.
Synopsis
function parsetext(txt:text,start:integer):text
function parsetext(txt:text):text
function parsetext(txt:text,pctx:parsectx):text
function parsetext(txt:text,ta:textarea):text
Arguments
txt
|
A
text object
|
pctx
|
A parser context
|
ta
|
A text area object
|
start
|
Starting position in the text
|
Return value
Decoded text.
Example
The following:
t:=text("a123.4b") setparam("sys_sepchar",46) ! '.' writeln(parsetext(t,2)) writeln(getparam("sys_endparse"))
produces this output:
123 5
Further information
1. The behaviour of this routine depends on 2 control parameters:
sys_sepchar (or context property
sepchar) defines a field separator that may mark the end of a non-quoted string and the parameter
sys_qtype (or context property
qtype) specifies the convention to use for quoted strings: if this parameter has value
0 (the default), Mosel quoting convention is used (both single and double quotes may be employed and with double quotes escape sequences are allowed); with value
-1 no quoting is expected; with value
1, C/C++ quoting convention applies (only double quotes with escape sequences). Finally, with value
2, CSV convention is expected (double quotes and repetition of double quotes to escape this character). The returned string is decoded: quotes are removed and escape sequences are replaced by their corresponding characters.
2. The parsing begins at the specified starting position and stops as soon as the separator character (
sys_sepchar or context property
sepchar respectively) is found or the quoted string is terminated.
- Standard (initial two) versions: if start is not provided then the value of the control parameter sys_endparse is used as starting position; the location where parsing stops is stored in the parameter sys_endparse.
- Version using a parser context: the information contained in the parser context is used instead of the global parameters (see Section The type parsectx); the context property endparse indicates the starting position and is updated with the location where parsing stops.
- Version using a textarea object: the routine uses the start property of the object (see Section The type textarea) as the starting position but it does not store the position where parsing stops, in particular it does not modify the parameter sys_endparse.
3. In case of error,
getsysstat will return a negative value. A positive value indicates that a quoted string is unfinished (
i.e. the end of the source text is reached although no matching quote has been found).
Related topics
Module