Name
AnsiString Type
Syntax
type AnsiString;
Description
The AnsiString type is a
long, reference-counted string containing AnsiChar
characters. By default, Delphi treats the generic
string type as synonymous with
AnsiString. If you use the $H-
or $LongStrings compiler directives, though,
string becomes the same as
ShortString.
Delphi stores an AnsiString as a pointer to a
record, but instead of pointing to the start of the record, the
AnsiString pointer points to the start of the
Data member. The Length and
RefCount members precede the string contents.
type
// This is the logical structure of an AnsiString, but the
// declaration below is descriptive and cannot be compiled.
TAnsiString = record
RefCount: LongWord;
Length: LongWord;
Data: array[1..Length+1] of AnsiChar;
end;Tips and Tricks
Delphi manages the lifetime of
AnsiStringstrings using reference counting. You can manipulate the reference count with theInitializeandFinalizeprocedures, should the need arise.Assigning a string to an
AnsiString-type variable copies a pointer to the string and increments the reference count. You can still think of the new variable as having its own copy because Delphi uses copy-on-write semantics. If you change the contents of a string whose reference count is greater than one, Delphi automatically creates a unique copy of the string and modifies the copy.Each string also maintains its length as a separate integer. You can set the length of a string by calling
SetLength. Delphi automatically ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access