Процедура SetString в Delphi копіює символи з буфера в рядок.
System unit
procedure SetString (var TargetString : string; BufferPointer : PChar; Length : Integer);
Процедура SetString змінює довжину TargetString на Length перед копіюванням цієї кількості символів із буфера, заданого змінною BufferPointer.
Довжина змінюється лише в тому випадку, якщо рядок не типу ShortString. Фактично, пам'ять під рядок перерозподіляється – посилання TargetString вказує на цей новий рядок.
Процедура SetString: Приклад коду
var
target : string;
source : array[1..5] of Char;
srcPtr : PChar;
i : Integer;
begin
// Заповнення масиву символів
for i := 1 to 5 do
source[i] := Chr(i+64);
// Копіювання цих символів у рядок
srcPtr := Addr(source);
SetString(target, srcPtr, 5);
// Показуємо, що ми маємо
ShowMessage('target тепер = '+target);
end;
Результат
target теперь = ABCDE
Подібні функції, процедури та команди
FillChar — заповнює розділ пам'яті значенням байта або символу-заповнювача.
SetLength — змінює розмір рядка або розмір динамічного масиву.
StringOfChar — створює рядок з одного символу, повтореного багато разів.
