Library /sys$common/syshlp/helplib.hlb  —  PASCAL  Statements  WITH
  The  WITH  statement  provides  an  abbreviated   notation   for
  references  to  the fields of a record variable or to the formal
  discriminants of a discriminated schema type.

  Syntax:

     WITH {record-variable | schema-variable},... DO
        statement

  The 'record-variable' is the name of the record  variable  being
  referenced.

  The 'schema-variable' is the name of the schema  variable  being
  referenced  whose  type  is  a  discriminated schema type.  This
  underlying type of the schema can be a record.

  The 'statement' is any VSI Pascal statement.

  The WITH statement allows you to refer to the fields of a record
  or  to  an formal discriminant of a schema by their names alone,
  rather    than     by     the     record.field-identifier     or
  schema-variable.formal-discriminant syntax.  In effect, the WITH
  statement  opens  the  scope  so  that   references   to   field
  identifiers  or  to  formal discriminants alone are unambiguous.
  When you access a variable using a WITH statement, the reference
  syntax lasts only throughout the execution of the statement.

  If you are specifying nested records, their variable names  must
  appear in the order in which they were nested in the record type
  definition.  If you are working with record and schema variables
  that  are  not  nested,  you  can  specify variable names in any
  order.  If you specify record or schema  variables  whose  field
  names  or  formal  discriminants  conflict with one another, VSI
  Pascal uses the last record or schema in the comma list.

1  –  Examples

  Example:

     WITH Cat, Dog DO
        Bills := Bills + Cat_vet + Dog_vet;

  where 'Cat' and 'Dog' are records and 'Cat_vet' is  a  field  of
  'Cat' and 'Dog_vet' is a field of 'Dog'.

  Example:

     VAR
        x : STRING( 10 );
        y : STRING( 15 );

     WITH x, y DO
        WRITELN( CAPACITY );

  VSI Pascal uses the last  schema  variable  specified,  y.   The
  WRITELN statement prints y.CAPACITY.
Close Help