Пытается скопировать len байтов из области, имеющей смещение spos в файле-источнике sc, в область, имеющую смещение dpos в файле назначения dc.
int _FCopy(FCHAN dc, long dpos, FCHAN sc, long spos, long len) FCHAN dc; /* Канал файла назначения. */ long dpos; /* Смещение в файле назначения. */ FCHAN sc; /* Канал файла-источника. */ long spos; /* Смещение в файле-источнике. */ long len; /* Число копируемых байтов. */ |
Примечания
_FCopy( ) возвращает значение "истина" (целое число, отличное от 0) в случае успеха и"ложь" (0) в случае неудачи.
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.
Пример
В следующем примере создаются два файла. В первый из них записывается текст "Hello, world", а затем содержимое этого файла, начиная с третьего байта, копируется во второй файл.
Код Visual FoxPro
Copy Code | |
---|---|
SET LIBRARY TO FCOPY |
Код C
Copy Code | |
---|---|
#include <pro_ext.h> FAR Example(ParamBlk FAR *parm) { FCHAN fchan1, fchan2; int len; fchan1 = _FCreate("temp1.txt", FC_NORMAL); _FPuts(fchan1, "Hello, world."); _FFlush(fchan1); len = _FSeek(fchan1, 0, FS_FROMEOF); // determine length of file fchan2 = _FCreate("temp2.txt", FC_NORMAL); _FCopy(fchan2, 0, fchan1, 2, len - 2); _FClose(fchan1); _FClose(fchan2); } FoxInfo myFoxInfo[] = { {"FCOPY", (FPFI) Example, CALLONLOAD, ""}, }; FoxTable _FoxTable = { (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; |