Документация по Clarion

       

Документация по Clarion



метка GROUP[,PRE()][,DIM()][,OVER()][,NAME()][,EXTERNAL]
declarations
.


declarations Одно или более
последовательных описаний


переменных.
PRE Метка-префикс для
переменных этой структуры.
DIM Размерность переменных
как массива.
OVER Разделяет одно и то же
место в памяти с
другойпеременной или
структурой.
NAME Задает "внешнее"
имя поля.
EXTERNAL Указывает на то, что
переменная описана и
память под нее выделена во
внешней библиотеке. НЕ
разрешено с описаниями FILE,
QUEUE или GROUP.

(SPA - Мне кажется, что они
противоречат сами себе - пишут,
что атрибут external не разрешен
для group, а сами указывают его в
списке возможных параметров...)
Структура GROUP позволяет
обращаться к нескольким
переменным по одной метке. Это
может использоваться для
измерения (?) набора переменных,
или для присвоения или
сравнения наборов переменных
одним оператором. В больших
сложных программах, структуры
GROUP удобны для подержки наборов
связанных разнотипных данных.
GROUP должна завершаться точкой
или оператором END.
При обращении оператора или
выражения к переменной типа
GROUP, GROUP рассамтривается как
STRING, составленная из всех
переменных этой структуры.
Структура GROUP может быть
вложена в другую структуру
данных, как например, RECORD или
другая GROUP.
Из-за внутреннего
представления, числовые
переменные (кроме DECIMAL)
описанные в группе не совсем
корректно обрабатываются, при
использовании их как строк. По
этой причине, построение ключа,
в котором используются поля
типа GROUP, содержащие числовые
переменные, может привест к
неожиданной
последовательности сравнения
(collating sequence).
Пример:
NameGroup GROUP,PRE(Nme) !Name group
First STRING(20) ! first name
Middle STRING(L) ! middle initial
Last STRING(20) ! last name
. !End group declaration
DateTimeGrp GROUP,PRE(Dtg),DIM(10) !Date/time array
Date LONG
Time LONG
. !End group declaration



Содержание раздела