home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / DBAPI.ZIP / DBWRITE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-25  |  901 b   |  41 lines

  1. #include <fcntl.h>
  2. #include <io.h>
  3. #include <stdlib.h>
  4. #include <mem.h>
  5. #include <errno.h>
  6. #include <dos.h>
  7. #include "dbapi.h"
  8.  
  9. /*man**************************************************************
  10. NAME
  11.     dbwrite
  12.  
  13. SYNOPSIS
  14.     #include "dbapi.h"
  15.  
  16.     char *dbwrite(char *buf,dword recno,DBFFILE *dbf)
  17.  
  18. DESCRIPTION
  19.     dbwrite writes a single record into file at specified record
  20.     position. first record is 0.
  21.  
  22. DIAGNOSTICS
  23.     returns buf if OK, NULL if fails.
  24. ******************************************************************/
  25. char *dbwrite(char *buf,dword recno,DBFFILE *dbf)
  26. {
  27. long offset;
  28.     offset=(recno*(dbf->reclen))+dbf->hdrlen;
  29.     fseek(dbf->fp,offset,SEEK_SET);
  30.     if (fwrite(buf,dbf->reclen,1,dbf->fp)) {
  31.         dbf->written=1;
  32.         if (dbf->nrecords<recno+1) {
  33.             dbf->nrecords=recno+1;
  34.             fwrite(" \0x1a",2,1,dbf->fp);
  35.             fflush(dbf->fp);
  36.         }
  37.         return buf;
  38.     }
  39.     return NULL;
  40. }
  41.