_ALen( ), API-Bibliotheksroutine
Gibt Informationen über die Abmessungen des Arrays mit dem Namenstabellenindex nti zurück.
long _ALen(NTI nti, int mode)
NTI nti; /* Array name table index. */
int mode; /* Mode to determine return value. */
Hinweise
Ist mode auf AL_ELEMENTS gesetzt, gibt _ALen( ) die Gesamtzahl der Ereignisse im Array zurück. Ist mode auf AL_SUBSCRIPT1 gesetzt, gibt _ALen( ) den Wert des ersten Indexes zurück, der zur Deklaration des Arrays verwendet wurde. Ist mode auf AL_SUBSCRIPT2 gesetzt, gibt _ALen( ) den Wert des zweiten Indexes zurück, der zur Deklaration des Arrays verwendet wurde.
Wenn nti nicht den Namen eines vorhandenen Arrays indiziert, gibt _ALen( ) den Wert -1 zurück, unabhängig vom Wert in mode.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird für jeden der drei möglichen Mode-Werte eine Visual FoxPro-API-Routine zur Verfügung gestellt.
Visual FoxPro-Code
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-Code
#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
};
Siehe auch
_FindVar( ), API-Bibliotheksroutine | _Load( ), API-Bibliotheksroutine | _NameTableIndex( ), API-Bibliotheksroutine | _NewVar( ), API-Bibliotheksroutine | _ObjectRelease( ), API-Bibliotheksroutine | _Store( ) API-Bibliotheksroutine