Возвращает информацию о размерах массива, индекс которого в таблице имен равен nti.
long _ALen(NTI nti, int mode) NTI nti; /* Индекс массива в таблице имен. */ int mode; /* Режим для определения возвращаемого значения. */ |
Примечания
Если значение mode равно AL_ELEMENTS, _ALen( ) возвращает общее число элементов в массиве. Если mode равно AL_SUBSCRIPT1, _ALen( ) возвращает число элементов по первому индексу, использованному в объявлении массива. Если mode равно AL_SUBSCRIPT2, _ALen( ) возвращает число элементов по второму индексу, использованному в определении массива.
Если nti не соответствует ни одному из имен существующих массивов, _ALen( ) возвращает - 1 независимо от значения mode.
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.
Пример
В следующем примере предлагается API процедура Visual FoxPro для каждого из трех возможных значений режима.
Код Visual FoxPro
![]() | |
---|---|
SET LIBRARY TO ALEN DIMENSION a[10, 11] ? ALENELEM(@a) && returns 110 ? ALENSUB1(@a) && returns 10 ? ALENSUB2(@a) && returns 11 DIMENSION b[3] ? ALENELEM(@b) && returns 3 ? ALENSUB1(@b) && returns 3 ? ALENSUB2(@b) && returns 0; no second subscript c = .F. ? ALENELEM(@c) && returns -1 because variable "c" is not an array ? ALENSUB1(@c) && returns -1 because variable "c" is not an array ? ALENSUB2(@c) && returns -1 because variable "c" is not an array |
Код C
![]() | |
---|---|
#include <pro_ext.h> void FAR alenElem(ParamBlk FAR *parm) { _RetInt(_ALen(parm->p[0].loc.l_NTI, AL_ELEMENTS), 10); } void FAR alenSub1(ParamBlk FAR *parm) { _RetInt(_ALen(parm->p[0].loc.l_NTI, AL_SUBSCRIPT1), 10); } void FAR alenSub2(ParamBlk FAR *parm) { _RetInt(_ALen(parm->p[0].loc.l_NTI, AL_SUBSCRIPT2), 10); } FoxInfo myFoxInfo[] = { {"ALENELEM", (FPFI) alenElem, 1, "R"}, {"ALENSUB1", (FPFI) alenSub1, 1, "R"}, {"ALENSUB2", (FPFI) alenSub2, 1, "R"}, }; FoxTable _FoxTable = { (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; |
Смотрите также
Справочное руководство
Процедура библиотеки API _FindVar( )Процедура библиотеки API _Load( )
Процедура библиотеки API _NameTableIndex( )
Процедура библиотеки API _NewVar( )
Процедура библиотеки API _ObjectRelease( )
Процедура библиотеки API _Store( )
Концепции
Процедуры библиотеки API от A до ZПрочие ресурсы
API Library Routines by Category
c Microsoft Corporation. All rights reserved. Microsoft is not reponsible for the contents of the translated help topics.