_ALen( ) (Rutina de biblioteca API)
Devuelve información acerca de las dimensiones de la matriz cuyo índice en la tabla de nombres es nti.
long _ALen(NTI nti, int mode)
NTI nti; /* Array name table index. */
int mode; /* Mode to determine return value. */
Observaciones
Si mode es AL_ELEMENTS, _ALen( ) devuelve el número total de elementos de la matriz. Si mode es AL_SUBSCRIPT1, _ALen( ) devuelve el valor del primer subíndice utilizado para declarar la matriz. Si mode es AL_SUBSCRIPT2, _ALen( ) devuelve el valor del segundo subíndice utilizado para declarar la matriz.
Si nti no representa el nombre de una matriz existente, _ALen( ) devuelve – 1 sin tener en cuenta el valor de mode.
Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.
Ejemplo
El siguiente ejemplo proporciona una rutina API de Visual FoxPro para cada uno de los tres posibles valores.
Código 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ódigo 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
};
Vea también
_FindVar( ) (Rutina de biblioteca API) | _Load( ) (Rutina de biblioteca API) | _NameTableIndex( ) (Rutina de biblioteca API) | _NewVar( ) (Rutina de biblioteca API) | _ObjectRelease( ) (Rutina de biblioteca API) | _Store( ) (Rutina de biblioteca API)