Страница 1 из 1

Динамические массивы

Добавлено: 22 ноя 2005, 17:21
Sytin
Пытаюсь объявить динамический массив.Пишу как в документации

const
CountNrec=2;
End;

Interface SelDO (,,sci178InsPM) DoAccept,EscClose,cyan,AlwaysReturn;
........................................
type
NrecType=record
NrecList : array[1..CountNrec] of comp;
end;
var
NL:NrecType;
........................................
end.

Выдает ошибку
Ошибка: Задайте правую границу (стр.26, поз.28)
NrecList : array[1..CountNrec] of comp;

Добавлено: 23 ноя 2005, 11:18
edward_K
NrecList : array[1..1] of comp;
SetLimit(NrecList,CountRec) ;

Добавлено: 23 ноя 2005, 11:58
Алексей
edward_K

разве SetLimit это не функция заполнения массива какими то значениями? В данном примере вы просто заполните массив NrecList значениями 2.

А Sytin вроде как спрашивает, как сделать что бы длина массива была переменно. Или я чего то не понял?


Sytin
А поставте по больше длину, а юзайте до такой длины, какая нужна
:)

Добавлено: 23 ноя 2005, 12:16
edward_K
не путайте - для этого есть другая функция , и я не помню ее объявленной для общего использования
пример
SetLimit(Unn ,GetLimit(Unn )+1);
увеличит длину массива на 1.
вообще лучше(если есть лиц. на vip) пользоватся своими временными таблами.

Добавлено: 23 ноя 2005, 12:29
Алексей
Признаю свою ошибку :)
Про таблицы - согласен с edward_K

Но когда надо какую нибудь мелку быструю прогу, что бы не заботило скока она памяти съест и т.п., и большой длинный массив сгоидится
:grin:

Добавлено: 23 ноя 2005, 18:39
Sytin
edward_K писал(а):не путайте - для этого есть другая функция , и я не помню ее объявленной для общего использования
пример
SetLimit(Unn ,GetLimit(Unn )+1);
увеличит длину массива на 1.
вообще лучше(если есть лиц. на vip) пользоватся своими временными таблами.
C проблемой я разобрался.Про динамические массивы все равно интересно.То есть можно обьявить просто статический массив,а потом SetLimitom его увеличивать?Или я чет не понял? :-?

Добавлено: 23 ноя 2005, 18:54
edward_K
да
При этом если сделать SetLimit( ,0) то это приведет к его очистке.