parseint
parseint |
Purpose
Convert a text into an integer.
Synopsis
function parseint(txt:text,start:integer):integer
function parseint(txt:text,start:integer,base:integer):integer
function parseint(txt:text):integer
function parseint(txt:text,pctx:parsectx):integer
function parseint(txt:text,pctx:parsectx,base:integer):integer
function parseint(txt:text,ta:textarea):integer
function parseint(txt:text,ta:textarea,base:integer):integer
Arguments
txt
|
A
text object
|
pctx
|
A parser context
|
ta
|
A text area object
|
start
|
Starting position in the text
|
base
|
Base to use for the conversion (between 2 and 36)
|
Return value
The integer represented by the string.
Example
The following:
t:=text("a123.4b") writeln(parseint(t,2)) writeln(getparam("sys_endparse"))
produces this output:
123 5
Further information
1. The parsing begins at the specified starting position and stops as soon as an invalid character is found or when the end of the text is reached.
- Standard (initial three) 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.
2. In case of error (no valid character found or overflow) the system status is set with a non-zero value (see
getsysstat) and, depending on the situation, 0,
MAX_INT or
-MAX_INT-1 is returned.
3. The optional
base argument may be used if the text is not expressed in base 10. Valid values for this parameter is 0 and 2 to 36. If base is zero or 16, the string may then include a '0x' prefix, and the number will be read in base 16. Furthermore, if the base is 0, the text will be read in base 8 if the first character is 0 and in base 10 otherwise.
4. The base value may also be negative: in this case the input data is interpreted as an unsigned integer.
Related topics
Module