<Quote from the Delphi online help>

Declaration

procedure SetString(var s: string; buffer: PChar; len: Integer);

Description

The SetString standard procedure sets the contents and length 
of the given string variable to the block of characters given 
by the Buffer and Len parameters.

For a short string variable, SetString sets the length indicator 
character (the character at S[0]) to the value given by Len and 
then, if the Buffer parameter is not nil, copies Len characters 
from Buffer into the string starting at S[1]. For a short string 
variable, the Len parameter must be a value between 0 and 255.

For a long string variable, SetString sets S to reference a newly 
allocated string of the given length. If the Buffer parameter 
is not nil, SetString then copies Len characters from Buffer 
into the string; otherwise, the contents of the new string 
is left uninitialized. If there is not enough memory available 
to create the string, an EOutOfMemory exception is raised. 
Following a call to SetString, S is guaranteed to reference a 
unique string, that is a string with a reference count of one.

<End of quote>

