ObjectPascal
String
Type
A data type that holds a string of characters System unit
1   type String;
2   type String[FixedSize constant];
Description
The String data type is used to hold sequences of characters, like sentences.
 
String is by default, actually treated as a AnsiString. It can be treated as a ShortString if the $LongStrings compiler directive is set Off (the default is On).
 
An AnsiChar can hold any number of characters, restricted only by memory.
 
Version 2 however, forces the string to be a ShortString by defining a FixedSize (up to 255 characters) of the string. This is particularly important when creating many strings, and especially so when storing strings in records (as in example 2).
 
Strings can be assigned from other strings, from functions that return a string, and with concatenations as in the sample code.
Notes
Strings are indexed with 1 for the first character (arrays start with 0 for the first element).
Related commands
$LongStrings Treat string types as AnsiString or ShortString
AnsiCompareStr Compare two strings for equality
AnsiLowerCase Change upper case characters in a string to lower case
AnsiPos Find the position of one string in another
AnsiString A data type that holds a string of AnsiChars
AnsiUpperCase Change lower case characters in a string to upper case
Concat Concatenates one or more strings into one string
Copy Create a copy of part of a string or an array
Delete Delete a section of characters from a string
Length Return the number of elements in an array or string
Move Copy bytes of data from a source to a destination
PString Pointer to a String value
SetLength Changes the size of a string, or the size(s) of an array
ShortString Defines a string of up to 255 characters
WideString A data type that holds a string of WideChars
 
Example code : Assigning to a string and then adding a bit more
var
  myString : String;
begin
  // Assign a famous sentence to this string
  myString := 'Hello World';

  // Add to this string
  myString := myString + ', how is everyone?';

  // Display the final myString value
  WriteLn('myString = '+myString);
end;
Show full unit code
   Hello World, how is everyone?
 
Example code : Using fixed length strings in a record
type
  // Declare a customer record
  TCustomer = Record
    firstName : String[15];
    lastName  : String[30];
  end;

var
  customer : TCustomer;

begin
  // Set up the John's customer details
  with customer do
  begin
    firstName := 'John';
    lastName  := 'Smith';
  end;

  // Now show the details of our customer
  WriteLn('Customer name = '+customer.firstName+
                             ' '+customer.lastName);
end;
Show full unit code
   Customer name = John Smith