Возвращает канал memo-файла, соответствующего заданной рабочей области workarea.
FCHAN _MemoChan(int workarea) int workarea; /* Номер рабочей области. */ |
Примечания
Если в указанной рабочей области ни одна база данных не открыта или если в открытой базе данных нет memo-файла, _MemoChan( ) возвращает - 1.
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.
Пример
В следующем примере извлекается содержимое memo-поля. _MemoChan(-1) возвращает канал memo-файла, относящегося к текущей рабочей области. Возвращенный канал FCHAN используется в качестве аргумента в API-функциях файлового ввода-вывода низкого уровня.
Код Visual FoxPro
Copy Code | |
|---|---|
SET LIBRARY TO MEMOCHAN CREATE TABLE WMemo (MemoField M) APPEND BLANK REPLACE MemoField WITH "Hello, World." ? GETMEMO(@MemoField) | |
Код C
Copy 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
}; | |
Смотрите также
Справочное руководство
Процедура библиотеки API _AllocMemo( )Процедура библиотеки API _DBReplace( )
Процедура библиотеки API _FindMemo( )
Процедура библиотеки API _FOpen( )
Процедура библиотеки API _MemoSize( )
Концепции
Процедуры библиотеки API от A до ZПрочие ресурсы
Доступ к API Visual FoxProПроцедуры библиотеки API по категориям
c Microsoft Corporation. All rights reserved. Microsoft is not reponsible for the contents of the translated help topics.