| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Strings are "Schema types" in GNU Pascal which is something more
advanced than Borland-style strings. For variables, you cannot
specify just String as a type like in Borland Pascal; for
parameters and pointer types you can. There is no 255 characters
length limit. According to Extended Pascal, the maximum string
length must be in (parentheses); GNU Pascal accepts [brackets], too,
however, like BP.
For more about strings and schema types see section 8.2.10.6 EP's Schema Types including `String'.
GPC supports Borland Pascal's string handling functions and some more (see section 8.10.2 String Operations):
| Borland Pascal | GNU Pascal |
| Length | Length |
| Pos | Pos, Index (1) |
| Str | Str, WriteStr (1) (2) |
| Val | Val, ReadStr (2) |
| Copy | Copy, SubStr, MyStr[2 .. 7] (3) |
| Insert | Insert |
| Delete | Delete |
| MyStr[0] := #7 | SetLength (MyStr, 7) |
| =, <>, <, <=, >, >= | =, <>, <, <=, >, >= (4) |
| EQ, NE, LT, LE, GT, GE | |
| n/a | Trim |
Notes:
(1) The order of parameters of the Extended Pascal routines (`Index', `WriteStr') is different from the Borland Pascal routines.
(2) `ReadStr' and `WriteStr' allow an arbitrary number of arguments, and the arguments are not limited to numbers. `WriteStr' also allows comfortable formatting like `WriteLn' does, e.g. `WriteStr (Dest, Foo : 20, Bar, 1/3 : 10 : 2)'.
(3) `SubStr' reports a runtime error if the requested substring does not fit in the given string, `Copy' does not (like in BP).
(4) By default, the string operators behave like in BP. However, if you use the option `--no-exact-compare-strings' or `--extended-pascal', they ignore differences of trailing blanks, so, e.g., `'foo'' and `'foo '' are considered equal. The corresponding functions (`EQ', ...) always do exact comparisons.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |