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

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

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

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

Сообщение ifrost » 17.11.2009 09:45:28

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

я заполняю 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:
ifrost
новенький
 
Сообщения: 21
Зарегистрирован: 13.11.2009 09:19:51

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

Сообщение Light13 » 17.11.2009 09:53:37

ifrost писал(а):
Код: Выделить всё
for i := 0 to Random(ELEMENT_CNT) do

у Вас заполняется случайное количество элементов в ListBox'е
замените на
Код: Выделить всё
for i := 0 to ELEMENT_CNT - 1 do
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

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

Сообщение ifrost » 17.11.2009 10:06:12

:oops:
Ох ох...
Извините... :oops:
ifrost
новенький
 
Сообщения: 21
Зарегистрирован: 13.11.2009 09:19:51


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

Рейтинг@Mail.ru