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 die Länge des angegebenen Memofeldes in der Memodatei des aktuellen Datensatzes zurück.
long _MemoSize(Locator FAR *fld)
Locator FAR *fld; /* Memo field address. */
Hinweise
Wenn das Memofeld des aktuellen Datensatzes leer ist oder wenn fld kein Memofeld ist, gibt _MemoSize( ) eine negative ganze Zahl zurück, deren absoluter Wert eine Visual FoxPro-Fehlernummer darstellt.
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 der Inhalt eines Memofeldes für den aktuellen Datensatz abgerufen. _MemoSize( ) wird verwendet, um zu bestimmen, wie viel Speicherplatz für einen Zwischenspeicher reserviert werden soll und wie viele Bytes aus der Memodatei gelesen werden sollen.
Visual FoxPro-Code
SET LIBRARY TO MEMOSIZE
CREATE TABLE WMemo (MemoField M)
APPEND BLANK
REPLACE MemoField WITH "Hello, World."
? GETMEMO(@MemoField)
C-Code
#include <pro_ext.h>
FAR FindMemoEx(ParamBlk FAR *parm)
{
Locator FAR *memoFldLoc;
FCHAN fchMemo;
char FAR *memoContents;
int memoLen;
long loc;
if ((fchMemo = _MemoChan(-1)) == -1)
{
_UserError("_MemoChan() failed");
}
memoFldLoc = &parm->p[0].loc;
if ((loc = _FindMemo(memoFldLoc)) < 0)
{
_UserError("_FindMemo() failed");
}
if ((memoLen = _MemoSize(memoFldLoc)) < 0)
{
_UserError("_MemoSize() failed");
}
if ((memoContents = _Alloca(memoLen + 1)) == 0)
{
_Error(182); // "Insufficient memory"
}
_FSeek(fchMemo, loc, FS_FROMBOF);
_FRead(fchMemo, memoContents, memoLen);
memoContents[memoLen] = '\0';
_RetChar(memoContents);
}
FoxInfo myFoxInfo[] = {
{"GETMEMO", (FPFI) FindMemoEx, 1, "R"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_AllocMemo( ), API-Bibliotheksroutine | _DBReplace( ), API-Bibliotheksroutine | _FindMemo( ), API-Bibliotheksroutine | _MemoChan( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API