Помещает текст по указанному адресу между заданными позициями смещения (включая их).
void _EdGetStr(WHANDLE wh, EDPOS thePos, EDPOS thePos, TEXT *theStr) WHANDLE wh; /* Дескриптор окна редактирования. */ EDPOS thePos; /* Начальное смещение. */ EDPOS thePos; /* Конечное смещение. */ TEXT *theStr; /* Куда вставлять текст. */ |
Пример
В следующем примере в качестве параметра принимается имя файла и возвращаются первые 16 байтов файла.
Код Visual FoxPro
Copy Code | |
---|---|
SET LIBRARY TO EDGETSTR ? EDGETSTR("x") && returns the first 16 characters of file "x" |
Код C
Copy Code | |
---|---|
#include <pro_ext.h> FAR Example(ParamBlk FAR *parm) { WHANDLE wh; char FAR *buffer; char FAR *pFileName; if (!_SetHandSize(parm->p[0].val.ev_handle, parm->p[0].val.ev_length+1)) { _Error(182); // "Insufficient memory" } _HLock(parm->p[0].val.ev_handle); pFileName = _HandToPtr(parm->p[0].val.ev_handle); pFileName[parm->p[0].val.ev_length] = '\0'; wh = _EdOpenFile(pFileName, FO_READONLY); _HUnLock(parm->p[0].val.ev_handle); if ((buffer = _Alloca(17)) == 0) { _Error(182); // "Insufficient memory" } _EdGetStr(wh, 0, 15, buffer); buffer[16] = '\0'; _RetChar(buffer); } FoxInfo myFoxInfo[] = { {"EDGETSTR", (FPFI) Example, 1, "C"}, }; FoxTable _FoxTable = { (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; |
Смотрите также
Справочное руководство
Процедура библиотеки API _EdGetChar( )Процедура библиотеки API _EdSetPos( )
Процедура библиотеки API _EdGetLinePos( )