Как заполнить числами динамический массив?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
ifrost
новенький
Сообщения: 21
Зарегистрирован: 13.11.2009 08:19:51

Как заполнить числами динамический массив?

Сообщение ifrost »

Здравствуйте!

я заполняю ListBox случайными значениями:

Код: Выделить всё

const
  ELEMENT_CNT = 1000;
  ELEMENT_MAX = 10000;
.....
.....
var
  i: Integer;
begin
  Randomize;
  with InputList.Items do
  begin
    BeginUpdate;
    Clear;
    for i := 0 to Random(ELEMENT_CNT) do
    begin
      Add(IntToStr(Random(ELEMENT_MAX)));
    end;
    EndUpdate;
  end;
end;

Потом мне все эти значения нужно перекинуть в динамический массив:

Код: Выделить всё

var
  TempArray: array of Integer;
  i: Integer;
begin
  SetLength(TempArray, ELEMENT_CNT);
  for i := 0 to ELEMENT_CNT - 1 do
  begin
    TempArray[i] := StrToInt(InputList.Items.Strings[i]);
  end;
end;

Но при заполнении массива выходит ошибка Out of bounds.
Причём если заменить StrToInt(InputList.Items.Strings[i]) на i, к примеру, или на Random(ELEMENT_MAX),
то массив заполняется. А вот брать значения из ListBox не хочет. Как я понял не хочет работать с StrToInt.
Что я не правильно делаю? Подскажите пожалуйста. :roll:
Аватара пользователя
Light13
постоялец
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Сообщение Light13 »

ifrost писал(а):

Код: Выделить всё

for i := 0 to Random(ELEMENT_CNT) do

у Вас заполняется случайное количество элементов в ListBox'е
замените на

Код: Выделить всё

for i := 0 to ELEMENT_CNT - 1 do
ifrost
новенький
Сообщения: 21
Зарегистрирован: 13.11.2009 08:19:51

Сообщение ifrost »

:oops:
Ох ох...
Извините... :oops:
Ответить