Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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