Node: Val, Next: value, Previous: uses, Up: Reference

### Val

(Under construction.)

#### Synopsis

         procedure Val (const Source: String; var x: integer_or_real;
                        var ErrorPosition: Integer);

#### Description

`Val` converts the integer or real number that is represented by the characters in the string `Source` and places it into `x`.

The `Source` string can have a base prefix (`$` for hexadecimal or `Base#`). The optional `ErrorCode` will be set to the position of the first invalid character, or to a 0 if the entire string represents a valid number. In case an invalid character occurrs in `Source`, `x` will be undefined.

#### Conforming to

`Val` is a Borland Pascal extension.

#### Example

         program ValDemo;
         var
           x, ec: Integer;
           l: LongInt;
           r: Real;
         begin
           Val ('123', x, ec);                { x :=            123; ec := 0; }
           Val ('-123', x, ec);               { x :=           -123; ec := 0; }
           Val ('123.456', r, ec);            { r :=        123.456; ec := 0; }
           Val ('$ffff', x, ec);              { x :=          65535; ec := 0; }
           Val ('$F000', x, ec);              { x :=          61440; ec := 0; }
           Val ('-$ffff', x, ec);             { x :=         -65535; ec := 0; }
           Val ('12#100', x, ec);             { x :=            144; ec := 0; }
           Val ('-2#11111111', x, ec);        { x :=           -255; ec := 0; }
           { here we have the invalid character 'X' for base 16 }
           Val ('$fffeX', x, ec);             { x :=    <undefined>; ec := 6; }
           Val ('12#100invalid', x, ec);      { x :=    <undefined>; ec := 7; }
           Val ('36#Jerusalem', l, ec);       { l := 54758821170910; ec := 0; }
         end.

#### See also

ReadLn, ReadStr, WriteLn, WriteStr, Str.