Re:Pascal at Apple
by clouddrover on Saturday July 22, 2017 @02:49AM
(#14825785)
And an annoying difference between the desktop and mobile compilers for Delphi is that on desktop strings are 1-indexed as they've always been but on mobile strings are 0-indexed:
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Migrating...
Oh lordy, I'd forgotten the array index thing. That was painful.
Re:Pascal at Apple
by clouddrover on Saturday July 22, 2017 @03:02AM
(#14825807)
The Low and High compiler intrinsics make array indexes easy to deal with. You don't need to care about the indexing to iterate over the array. You just go from Low(array) to High(array):
http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Lo...
I don't remember if Apple Pascal had those intrinsics or not. But I never saw any code that used them, and I read most of the Pascal code base for MPW and a bunch for the OS.
Turbo Pascal had them.
Coming from Basic that wasn't a problem.
It always felt quite natural to me.
And the string length is in the 0 byte, meaning no strings longer than 255 bytes. At least in old Turbo Pascal anyway!
Re:Pascal at Apple
by clouddrover on Saturday July 22, 2017 @02:46AM
(#14825778)
Yes, this is not a limitation in Free Pascal or Delphi. The ShortString type still exists and is limited to 255 bytes. But the AnsiString, WideString, and UnicodeString types are variable length and can be up to 2 gigabytes:
http://docwiki.embarcadero.com/RADStudio/Berlin/en/String_Ty...
In the case of classic Mac OS it was part of the API.
https://stackoverflow.com/questions/4083356/array-begin-from...