А как бы замечательной кларе объяснить сабж, а именно:
ругается на:
const:TranslitTableSize equate(size(mod:tmp:translitPairs) / size(type:translitPair))
хотя могла бы и не ругаться, размеры всех структур в точке объявления известны.
mod:TranslitTable like(type:translitPair), dim(const:TranslitTableSize), over(mod:tmp:translitPairs)
Альтернативный вопрос: как в кларе объявить и инициализировать массив, при этом глазами не пересчитывая количество его элементов?
--
Best regards,
Maxim Yemelyanov,
Enigma Soft Company
phone: (057) 2177977,759072(3!4)
WEB: http://enigmasoft.com.ua
e-mail: maxim@enigmasoft.com.ua
ICQ: 12253836
(Добавление)
Используй ConstantClass из клариной поставики
???Альтернативный вопрос: как в кларе объявить и инициализировать массив, при этом глазами не пересчитывая количество его элементов?
Best regards,
Andrew Listiev
Work mailto:andrewl@inbox.lv
Home mailto:gidravlic@mhm.lv
ICQ UID: 169357390
MS Messenger: werdna_werdna@hotmail.com
Брр... жуть какая. Нет, мне нужно нечто более простое.Используй ConstantClass из клариной поставики
Показываю:???
Код: Выделить всё
Type:SomeStruct group,Type
Foo Long
Bar String(20)
end
MyArray_inited Group
Long(1)
String('this is an array ')
Long(2)
String('initialized in ')
Long(122)
String('very perverted way ')
Long(666)
String('but we can do nothin')
Long(667)
String('cos os warped syntax')
Long(667)
String('of clarion :((( ')
end
MyArray Like(Type:SomeStruct), Over(MyArray_inited), Dim(???)
что здесь? ^^^
Но компилятор видимо не понимает, чего от него хотят.
Хотелось бы как в си:
Код: Выделить всё
Type_SomeStruct MyArray[]={
{1, this is an array" },
{2, "initialized in" },
{122, "very perverted way" },
{666, "but we can do nothin" },
{667, "cos os warped syntax" },
{667, "of clarion :(((" }
};
#define MyArray_size = sizeof(MyArray)/sizeof(Type_SomeStruct)
--
Best regards,
Maxim Yemelyanov
Dim(1), снимаешь контроль за индексами и считаешь размер в рантайм.
WBR, Nick Tsigouro mailto:nick@arsis.ru
Сделай попрощеБрр... жуть какая. Нет, мне нужно нечто более простое.

Да, сие есть проблема. Можно так:#define MyArray_size = sizeof(MyArray)/sizeof(Type_SomeStruct)
Код: Выделить всё
SomeProcedure Procedure(Count Long)
MyArray Like(Type:SomeStruct), Over(MyArray_inited), Dim(Count)
Code
...
Хотя конечно же геморрно

Best regards,
Andrew Listiev
Копилятор тупой! Сам недавно столкнулся с похожей ситуацией.
A EQUATE(4 + 2) - понимает
B EQUATE(4 * 2) - понимает
С EQUATE(4 * 0.5) - понимает
D EQUATE(4 / 2) - не понимает!!!!!
С уважением, Ставич Олег
Укрсиббанк г.Харьков
oldstav@ukrsibbank.com
Написал: ClaList(2)