константный "динамический" массив

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

константный "динамический" массив

Сообщение zub » 11.01.2012 21:58:31

Чето не пойму как определить "динамический" массив в разделе const. Никак чтоли?
хочется:
Код: Выделить всё
a: array of string = ('aaa', 'bbb', 'ccc');

а приходится:
Код: Выделить всё
acount=3;
a: array [1..acount] of string = ('aaa', 'bbb', 'ccc');

Массив конечно совсем не динасический, просто хотелосьбы чтоб компилятор сам с количеством элементов определился
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: константный "динамический" массив

Сообщение MageSlayer » 11.01.2012 22:24:15

Ну, динамический как статический - это не получится.
И с количеством элементов автоматически - тоже вроде никак.
MageSlayer
постоялец
 
Сообщения: 216
Зарегистрирован: 07.09.2006 12:30:44

Re: константный "динамический" массив

Сообщение Vadim » 12.01.2012 03:01:29

zub
Сами подумайте - константа не может быть динамической в принципе. У Вас и в объявлении видно, что массив статический, т.к. заранее известно кол-во элементов.
Вам просто хочется сократить количество написанных символов в коде? ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: константный "динамический" массив

Сообщение zub » 12.01.2012 10:17:36

Vadim
"Динамический" я не зря в кавычки взял, динамики в привычном понимании мне от него ненужно.
Мне нехочется ручками считать кол-во элементов и заводить вобщемто ненужную константу - компиляторы какраз и придуманы для такой работы))
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: константный "динамический" массив

Сообщение AlexVinS » 12.01.2012 12:34:46

Увы в паскале это не поддерживается. Индексы (статического) массива могут быть любым диапазоном, не обязательно от нуля. Единственное что вам может помочь это Dynamic array constructors (2.7.1+)
Код: Выделить всё
type
  TArr = array of string;
var
  a:TArr;
begin
  a := TArr.Create('aaa', 'bbb', 'ccc');
end;
Аватара пользователя
AlexVinS
новенький
 
Сообщения: 95
Зарегистрирован: 27.01.2009 01:18:01

Re: константный "динамический" массив

Сообщение zub » 12.01.2012 12:53:32

AlexVinS
>>Увы в паскале это не поддерживается
Я уже понял. Нагуглил беседу в списке рассылки http://www.hu.freepascal.org/lists/fpc- ... 23729.html с возможностью задания границ индексов (array [n..] of string или array [..n] of string), но дальше разговоров дело не пошло.
>>это Dynamic array constructors
Спасибо, но если уж делать в рантайме, то с чтением извне, чтоб менять это дело без перекомпиляции программы
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26


Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru