Функція Copy в Delphi створює копію частини рядка або частини масиву.
SysUtils unit
- function Copy (Source : string; StartChar, Count : Integer) : string;
- function Copy (Source : array; StartIndex, Count : Integer) : array;
Функція Copy має дві форми. У першому випадку вона створює новий рядок із частини існуючого рядка. У другому – вона створює новий масив із частини існуючого масиву.
1. Копія частини рядка
Перший символ рядка має індекс = 1.
Повертає рядок, що складається з вказаних у Count кількості символів, починаючи з StartChar символу.
Якщо до кінця рядка менше символів, ніж зазначено в Count, то копіюються всі символи, починаючи з StartChar і до кінця рядка.
2. Копія частини масиву
Перший елемент масиву має індекс = 0.
Повертає масив, що складається з зазначених у Count кількості елементів, починаючи з індексу.
Якщо до кінця масиву менше елементів, ніж зазначено в Count, то копіюються всі елементи, починаючи з StartIndex і до кінця масиву.
Примітка.
Для копіювання рядка, де StartChar менше 1 він буде оброблений як 1.
Щоб гарантувати копіювання до кінця рядка або масиву, використовуйте константу MaxInt як значення Count.
При копіюванні багатовимірних масивів копіюється тільки перший вимір. Всі елементи, крім останнього вимірювання масиву, – всі покажчики на підмасиви, які складають цілий масив. Після копіювання цільові елементи масиву продовжують вказувати на підмасиви вихідного масиву. Таким чином, ці підмасиви розділені на вихідний та цільовий масиви. Ви були попереджені!
Функція Copy: Копіювання рядка
var
Source, Target : string;
begin
Source := '12345678';
Target := Copy(Source, 3, 4);
ShowMessage('Target : '+Target);
end;
Результат
Target : 3456
Функція Copy: Копіювання масиву
var
i : Integer;
Source, Target : array of Integer;
begin
SetLength(Source, 8);
for i := 1 to 8 do // Формування динамічного вихідного масиву
Source[i-1] := i; // Запам'ятайте, що масиви починаються з індексу = 0
Target := Copy(Source, 3, 4);
for i := 0 to Length(Target) -1 do // Показуємо створений масив
ShowMessage('Target['+IntToStr(i)+'] : '+IntToStr(Target[i]));
end;
Результат
Target[0] : 4
Target[1] : 5
Target[2] : 6
Target[3] : 7
Подібні функції, процедури та команди
AnsiReplaceStr — замінює частину одного рядка на інший.
Concat — з'єднує кілька рядків в один.
Delete — видаляє частину символів з рядка.
Insert — вставляє рядок в інший рядок.
Move — копіює байти даних із джерела у місце призначення.
StringOfChar — створює рядок з одного символу, повтореного багато разів.
StringReplace — замінює один або кілька підрядків, знайдених у заданому рядку.
StuffString — замінює частину одного рядка на інший.
WrapText — додайте перенесення рядка в рядок, щоб імітувати перенесення слів.