Вниз
Скачать: CL | DM;

динамический массив   Найти похожие ветки 

 
Std   (2006-04-07 01:09) [0]

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

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

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


 
unknown ©   (2006-04-07 01:40) [1]


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

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

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

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


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


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

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


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

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


 
tesseract ©   (2006-04-07 09:42) [4]

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


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

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

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;
конец цикла

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
1-1142676910
Dust
2006-03-18 13:15
2006.04.23
Хочу ListBox, в котором многострочные Item сы и


1-1142596918
sav13
2006-03-17 15:01
2006.04.23
Переназначить родителя форме


2-1144315983
Sergio77
2006-04-06 13:33
2006.04.23
mysql доступ


2-1144406754
Alex_C
2006-04-07 14:45
2006.04.23
Sharemem и чудеча!


15-1143909658
Рамиль
2006-04-01 20:40
2006.04.23
А вы говорите первое апреля:-)




   Наверх