Difference between revisions of "Buffer.CopyDataInverse"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:43, 7 February 2021
CopyDataInverse (Копирование данных внутри буфера) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция копирует данные внутри буфера. Данные копируются начиная с конца отрезка, заканчивая началом отрезка копирования (в обратном направлении). Обычно эта процедура применяется при перемещении данных дальше к концу буфера, при этом, отрезок копирования может пересекаться с отрезком назначения.
Синтаксис
Buffer.CopyDataInverse(<Индекс начала данных (INT)>,<Размер области в байтах (INT)>,<Индекс назначения копирования (INT)>)
Аргументы
<Индекс начала данных (INT)>
- Позиция начала чтения. Адресация буфера начинается с нуля.<Размер области в байтах (INT)>
- Количество байт для копирования.<Индекс назначения копирования (INT)>
- Позиция начала записи. Адресация буфера начинается с нуля.
Примеры
аБуф:=Buffer.Create(); аБуф.SetStringW(0,"Строка проверки"); //Слово "Строка" копируется по направлению к началу буфера и регионы копирования пересекаются. Правильно было бы использовать функцию CopyDataInverse. аБуф.CopyDataInverse(14,16,8); //Будет выведено "Строкиркиркирки" вместо предполагаемой "Стропроверкирки" Message(аБуф.GetStringW(0,аБуф.Size()\2)); аБуф:=Buffer.Create(); аБуф.SetStringW(0,"Строка проверки"); //Корректный подход предыдущего примера аБуф.CopyData(14,16,8); //Будет выведено "Стропроверкирки" Message(аБуф.GetStringW(0,аБуф.Size()\2));