Помещает текст по указанному адресу между заданными позициями смещения (включая их).
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( )