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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

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

Сообщение 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;
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

NrecList : array[1..1] of comp;
SetLimit(NrecList,CountRec) ;
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

edward_K

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

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


Sytin
А поставте по больше длину, а юзайте до такой длины, какая нужна
:)
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

не путайте - для этого есть другая функция , и я не помню ее объявленной для общего использования
пример
SetLimit(Unn ,GetLimit(Unn )+1);
увеличит длину массива на 1.
вообще лучше(если есть лиц. на vip) пользоватся своими временными таблами.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Признаю свою ошибку :)
Про таблицы - согласен с edward_K

Но когда надо какую нибудь мелку быструю прогу, что бы не заботило скока она памяти съест и т.п., и большой длинный массив сгоидится
:grin:
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

edward_K писал(а):не путайте - для этого есть другая функция , и я не помню ее объявленной для общего использования
пример
SetLimit(Unn ,GetLimit(Unn )+1);
увеличит длину массива на 1.
вообще лучше(если есть лиц. на vip) пользоватся своими временными таблами.
C проблемой я разобрался.Про динамические массивы все равно интересно.То есть можно обьявить просто статический массив,а потом SetLimitom его увеличивать?Или я чет не понял? :-?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

да
При этом если сделать SetLimit( ,0) то это приведет к его очистке.
Ответить