![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как удалить одно значение из динамического массиваDelphi , Синтаксис , МассивыАвтор: http://www.swissdelphicenter.ch type TArrayString = array of string; procedure DeleteArrayIndex(var X: TArrayString; Index: Integer); begin if Index > High(X) then Exit; if Index < Low(X) then Exit; if Index = High(X) then begin SetLength(X, Length(X) - 1); Exit; end; Finalize(X[Index]); System.Move(X[Index + 1], X[Index], (Length(X) - Index - 1) * SizeOf(string) + 1); SetLength(X, Length(X) - 1); end; // Example : Delete the second item from array a // Beispiel : Losche das 2. Element vom array a procedure TForm1.Button2Click(Sender: TObject); var a: TArrayString; begin DeleteArrayIndex(a, 2); end; Перевод текста на русский язык: В предоставленном коде Delphi предназначен для удаления элемента из динамического массива строк (
Эта строка объявляет тип alias для массива строк, который будет использоваться в течение всего кода.
Процедура принимает динамический массив строк ( Если индекс не находится на конце массива (
В этом примере обработчик события кнопки
Чтобы решить эти проблемы, вам нужно инициализировать массив перед использованием его, а также рассмотреть возвращение нового массива или использовать другой подход, который не модифицирует оригинальный массив. Вот альтернативное решение:
В этом измененном коде обработчик события кнопки Это измененный код не модифицирует оригинальный массив в месте, а вместо этого создает новый массив с желаемыми содержимым. В статье описывается алгоритм удаления элемента из динамического массива в языке Delphi, который использует процедуру SetLength для изменения размера массива и перемещает значения элементов после удаленного элемента. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |