home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbase_c.zip / DBASE_C.LBR / DBASE.H next >
Text File  |  1989-03-20  |  2KB  |  58 lines

  1. /*------------- Constant Definitions --------------*/
  2. #define   ERROR          -1        ;
  3.       /* general error                            */
  4. #define   DATA_START     512       ;
  5.       /* relative start of data in a DBF file     */
  6. #define   D_OFFSET       0x6CD1    ;
  7.         /* offset in header location inside records */
  8. #define   MAX_REC_LEN    1000      ;
  9.       /* maximum record length for a DBASE record */
  10. #define   CPM_EOF        0x1A      ;
  11.       /* CPM end-of-file mark                     */ 
  12. #define   DB_EOF         -2        ;
  13.       /* db_read end of file marker               */
  14. #define   DB_HDR_SZ      512       ;
  15.       /* size of current internal header mask     */
  16. #define   TRUE           1;
  17. #define   FALSE          0;
  18.  
  19.  
  20. /*---------- Macro Function Definitions ----------*/
  21. #define      db_tell(db_ptr)    db_ptr->curr_rec;
  22. #define   db_recnum(db_ptr)    db_ptr->rec_num    ;
  23. #define   db_reclen(db_ptr)     db_ptr->rec_len;
  24. Edefine   db_varnum(db_ptr)     db_ptr->var_num ;
  25.  
  26. /*-- Definition of the File Description Block -----*/
  27. typedef   struct    {
  28.                       char    name[11], var_type, var_len ;
  29.                       int     var_loc ;
  30.                       char    dec_pts ;
  31.                     } DB_DESC ;  
  32.  
  33.  
  34. /* Definition of the DBASE header record and internal working */
  35. /*   variables                                                */
  36.  
  37. typedef   struct    {
  38.                       char    version ;                
  39.             /* Version number.  Must be 02        */
  40.              unsigned int     rec_num ;                
  41.             /* number of records                  */
  42.                       char    day, month, year ;       
  43.             /* date of last modification dd/mm/yy */
  44.              unsigned int     rec_len ;                
  45.             /* record length. sum(fields) + 1     */
  46.                       DB_DESC field_desc[32] ;         
  47.             /* field descriptors                  */
  48.                       int     *file_ptr ;              
  49.             /* pointer to FCB from open command   */
  50.                       char    var_num ;                
  51.             /* number of variables in the file    */
  52.                       char    chng_ind ;               
  53.             /* boolean if file changed by db_write*/
  54.                       int     curr_rec ;               
  55.             /* current record number              */
  56.                     } DBASE_FILE ;
  57.  
  58.