voorbeeld 1:
voorbeeld 2:Delphi Code:
Tfoo = record regel1 : string[10];
Welk voorbeeld is het meest logisch om te gebruiken?Delphi Code:
Tfoo = record regel1 : string;
Voorbeeld 1 resulteert tot een vaste lengte van een variable. Als er drie karakters worden gebruikt in variabele, wordt er toch 255 karakters gereserveerd in het geheugen (wat eigenlijk zinloos is, omdat er maar maximaal tien worden gebruikt).
Voorbeeld 2 geeft een pointer terug naar de variabele. Tijdens het vullen van deze variabele wordt er geheugen @runtime gereserveerd naar mate het aantal tekens. Dit kan een vertraging oplopen.
In Delphi wordt string[10] gezien als een shortstring (zelfs in D10 rio). Dit resulteert tijdens het compileren een warning:
Waarom wordt een shortstring in Delphi nog steeds niet gezien als een string? Als je dit zelfde verhaal verwerkt in Lazarus, komt deze zonder warning terug. Klaarblijkelijk wordt daar anders met strings omgegaan.W1057 Implicit string cast from 'ShortString' to 'string'
Bookmarks