Quick start manual
Data types, variables, and constants
5-11
String types
String types
A string represents a sequence of characters. Delphi supports the following
predefined string types.
AnsiString, sometimes called the long string, is the preferred type for most purposes.
String types can be mixed in assignments and expressions; the compiler
automatically performs required conversions. But strings passed by reference to a
function or procedure (as var and out parameters) must be of the appropriate type.
Strings can be explicitly cast to a different string type (see “Typecasts” on page 4-15).
The reserved word string functions like a generic type identifier. For example,
var S: string;
creates a variable S that holds a string. In the default {$H+} state, the compiler
interprets string (when it appears without a bracketed number after it) as AnsiString.
Use the {$H–} directive to turn string into ShortString.
The standard function Length returns the number of characters in a string. The
SetLength procedure adjusts the length of a string. See the online Help for details.
Comparison of strings is defined by the ordering of the characters in corresponding
positions. Between strings of unequal length, each character in the longer string
without a corresponding character in the shorter string takes on a greater-than value.
For example, “AB” is greater than “A”; that is, 'AB' > 'A' returns True. Zero-length
strings hold the lowest values.
You can index a string variable just as you would an array. If S is a string variable
and i an integer expression, S[i] represents the ith character—or, strictly speaking,
the ith byte—in S. For a ShortString or AnsiString, S[i] is of type AnsiChar; for a
WideString, S[i] is of type WideChar. For single-byte (Western) locales, MyString[2] :=
'A'; assigns the value A to the second character of MyString. The following code uses
the standard AnsiUpperCase function to convert MyString to uppercase.
var I: Integer;
begin
I := Length(MyString);
while I > 0 do
begin
MyString[I] := AnsiUpperCase(MyString[I]);
I := I - 1;
end;
end;
Table 5.5 String types
Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2
31
characters 4 bytes to 2GB 8-bit (ANSI) characters
WideString ~2
30
characters 4 bytes to 2GB Unicode characters;
multi-user servers and multi-
language applications