Tom Verhoeff wrote:
On Wed, Oct 29, 2008 at 09:58:10PM +0100, Vinzent Höfler wrote:

Tom Verhoeff wrote:


I am surprised that for ShortString, the range is not
also 1 <= i <= Length(s).

IIRC Turbo Pascal only allowed you to access s[0] when range checking
was off, and similarly for s[i] with i > Length(s).

No. See transcript:


That looks rather convincing.


Borland Pascal  Version 7.0  Copyright (c) 1983,92 Borland International


However, IIRC there were some differences between Borland Pascal
and Turbo Pascal (as it was named before they marketed it as
Borland Pascal).

IIRC the differences were in how big a program you could write. Accessing the length byte in a string did not change.

[digs out an old copy of Turbo.com -- TurboPascal version 3. Amazingly, it will run under WinXP.]

var
  x : String[50];
  i : Integer;

Begin
  x := 'Hello, World';
  for i := 0 to length(x) do
    write(ord(x[i]),' ');
  writeln;
  x[0] := #5;
  writeln(x);
end.

Outputs this:
12 72 101 108 108 111 44 32 87 111 114 108 100
Hello

so read and write access to element 0

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to