[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 8.5 Accessing parts of strings (and other arrays)

GPC allows the access of parts ("slices") of strings as defined in Extended Pascal. For example:

    program StringSliceDemo;

    const
      HelloWorld = 'Hello, world!';

    begin
      WriteLn (HelloWorld[8 .. 12])  { yields `world' }
    end.

As an extension, it also allows write access to a string slice:

    program SliceWriteDemo;

    var
      s: String (42) = 'Hello, world!';

    begin
      s[8 .. 12] := 'folks';
      WriteLn (s)  { yields `Hello, folks!' }
    end.

As a further extension, GPC allows slice access also to non-string arrays. However, the usefulness of this feature is rather limited because of Pascal's strict type checking rules: If you have, e.g., an ``array [1 .. 10] of Integer'` and take a slice ``[1 .. 5]'` of it, it will not be compatible to another ``array [1 .. 5] of Integer'` because distinct array types are not compatible in Pascal, even if they look the same.

However, array slice access can be used in connection with conformant or open array parameters. See the program ``arrayslicedemo.pas'` (in the ``demos'` directory) for an example.

This document was generated by Frank Heckenbach on May, 10 2002 using texi2html