Можно ли как-то переопределить размерность массива структуры GROUP?
Приведенный ниже код работает отлично:
Код: Выделить всё
PROGRAM
OMIT('***')
* Created with Clarion 8.0
* User: dsabitov
* Date: 14.07.2014
* Time: 21:57
***
MAP
ICanRedim PROCEDURE(LONG DIM_size)
END
CODE
ICanRedim(10)
ICanRedim PROCEDURE(LONG DIM_size)
LongVar LONG,DIM(DIM_size)
CODE
sz# = MAXIMUM(LongVar, 1)
MESSAGE('My dimension size is ' & sz#)
Код: Выделить всё
PROGRAM
OMIT('***')
* Created with Clarion 8.0
* User: dsabitov
* Date: 14.07.2014
* Time: 21:57
***
MAP
ICanRedim PROCEDURE(LONG DIM_size)
END
CODE
ICanRedim(10)
ICanRedim PROCEDURE(LONG DIM_size)
MyStruct GROUP,DIM(DIM_size)
Man STRING(20)
Phone STRING(20)
END
CODE
sz# = MAXIMUM(MyStruct, 1)
MESSAGE('My dimension size is ' & sz#)
Вопрос не праздный - нужно определять количество структур MyStruct для того, чтобы прочитать их в коде программы. Сама структура заполняется процедурой из внешней (не Clarion) dll. Эта внешняя процедура определяет и количество таких структур.
Вот так выглядит определение процедуры:
MODULE('wbotho.lib')
check_file_sign(*CSTRING fileName,*BYTE arraySize,*LONG arrayPointer),SHORT,RAW,C,PROC ! здесь arrayPointer - указатель на массив структур размерности arraySize
END
Может кто-то сталкивался с такой проблемой? Как решили?