Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

динамический массив [D2005, 2003]


Std ©   (2006-04-07 01:09:00) 

Доброго времени.
Подскажите можно ли ка кто добавлять в массив элементы не задавая при этом размер массива?
тоесть зделать типа

var
arr:array of integer;
n:integer;
begin
...
n:=0;
if a<15 then
arr[n]:=a;

при этом а берется из большого списка, и заранее не известно сколько будет элементов в вассиве..


Std   (2006-04-07 15:25:00) [1]

вот зделал вот так:

var
i,j:integer;
arr:array of integer;
begin
i:=0;
j:=1;
цикл который проверяет весь список
if x<15 then
begin
 SetLength(arr,j);
 arr[i]:=a;
 inc(i);
 inc(j);
end;
конец цикла

работает нормально, так что всем спасибо за беспокойство


tesseract   (2006-04-07 09:42:00) [2]

tlist - ему размер не задаётся.


Anatoly Podgoretsky   (2006-04-07 09:18:00) [3]

Можно, но только будет рантайм ошибка


Германн   (2006-04-07 02:02:00) [4]


> Std   (07.04.06 01:09)  
>
> Доброго времени.
> Подскажите можно ли ка кто добавлять в массив элементы не
> задавая при этом размер массива?

Нельзя, никак, никогда.  Увы.
Тебе посоветовали способы оптимизации вызовов SetLength при загрузке файла в динамический массив. Имхо - это максимум возможного.


unknown   (2006-04-07 01:40:00) [5]


> Std   (07.04.06 01:09)
> не задавая при этом размер массива

Как это вы себе представляете?

> при этом а берется из большого списка, и заранее не известно
> сколько будет элементов в вассиве

Ну и что?
Допустим n - счетчик строк в списке, a - значение из строки списка, тогда
получится примерно следующее:
if n=Length(arr) then
 SetLength(arr,n+1);
arr[n]:=a;


Наверх

Титульная страница Поиск, карта сайта Написать письмо