Freigeben über


_FCopy( ), API-Bibliotheksroutine

Versucht, die in len angegebene Anzahl Bytes von der Versatzposition spos in der Quelldatei sc an die Versatzposition dpos in der Zieldatei dc zu kopieren.

int _FCopy(FCHAN dc, long dpos, FCHAN sc, long spos, long len)
FCHAN dc;                  /* File channel of destination file. */
long dpos;                  /* Offset position to start copying to. */
FCHAN sc;                  /* File channel of source file. */
long spos;                  /* Offset position to start copying from. */
long len;                     /* Number of bytes to copy. */

Hinweise

_FCopy( ) gibt Wahr (eine ganze Zahl ungleich 0) zurück, wenn der Kopiervorgang ausgeführt wurde. Konnte nicht kopiert werden, wird Falsch (0) zurückgegeben.

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 werden zwei Dateien erstellt. Der Text "Hello, world" wird in die erste Datei geschrieben. Anschließend wird der Dateiinhalt, beginnend mit dem dritten Byte, in die zweite Datei kopiert.

Visual FoxPro-Code

SET LIBRARY TO FCOPY 

C-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
};

Siehe auch

_FPuts( ), API-Bibliotheksroutine | _FWrite( ), API-Bibliotheksroutine | _FCreate( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API