Могу ли я изменить размер массива Delphi без потери его предыдущего содержимого? - PullRequest
8 голосов
/ 06 июля 2010

У меня есть динамический массив.Но изначально я не знаю длину массива.Могу ли я сделать так, чтобы сначала я установил его длину равным 1, а затем увеличил его по мере необходимости, не теряя ранее сохраненные данные?
Я знаю, что могу выполнить такую ​​задачу с помощью TList.Но я хочу знать, могу ли я сделать это с массивом или нет?

1 Ответ

15 голосов
/ 06 июля 2010

Динамические массивы можно изменить до большего размера без потери содержащихся данных.

Следующая программа демонстрирует это в действии.

program Project7;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
 A : Array of Integer;
 I : Integer;
begin
  for I := 0 to 19 do
  begin
    SetLength(A,I+1);
    A[I] := I;
  end;
  for I := Low(A) to High(A) do
  begin
    writeln(A[I]);
  end;
  readln;
end.
...