Функция Copy в Delphi создает копию части строки или части массива.
SysUtils unit
- function Copy (Source : string; StartChar, Count : Integer) : string;
- function Copy (Source : array; StartIndex, Count : Integer) : array;
Функция Copy имеет 2 формы. В первом случае она создает новую строку из части существующей строки. Во втором – она создает новый массив из части существующего массива.
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 — добавьте перенос строки в строку, чтобы имитировать перенос слов.
