home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbase_c.zip / DBASE_C.LBR / DBVALID.C < prev    next >
Text File  |  1989-03-20  |  2KB  |  46 lines

  1. /**********************************************
  2. * valid_eof(i) determines whether or not the  *
  3. * CP/M end of file mark encountered in the    *
  4. * status field of the ith record is valid.  It*
  5. * uses the following set of rules :           *
  6. *                                             *
  7. * (i)   If the record is the maximum record in*
  8. *       the file, return TRUE.                *
  9. *                                             *
  10. * (ii)  If the record is not within a DBASE   *
  11. *       buffer size of the end of the file, a *
  12. *       FALSE value is returned               *
  13. *                                             *
  14. * (iii) If no other end of file mark is en-   *
  15. *       countered in the file, return TRUE    *
  16. *                                             *
  17. * (iv)  If two potentially valid EOF marks are*
  18. *       found, the  user is prompted for a    *
  19. *       decision.                             *
  20. **********************************************/
  21. valid_eof(i,buffer) 
  22.      int  i;
  23.      char buffer[];
  24.  
  25.      {int   cur_rec;
  26.       char  db_buffer[1000], c;
  27.  
  28.      if( i >= maxrec-1 )
  29.         return( TRUE );
  30.      else if( (i*db_ptr->rec_len+DATA_START) < (char_size-DB_SECT_SZ) )
  31.         return( FALSE );
  32.      else if( strip(buffer,db_ptr->rec_len) > 2)
  33.         return( TRUE );
  34.       else {
  35.          printf("\nUnable to determine whether the end of file mark");
  36.          printf("\nat record #%d is reasonable",i);
  37.          printf("\nIs this the end of the file[Y/N]:");
  38.          c = keyin();
  39.          if( (c == 'y') || (c == 'Y') )
  40.             return( TRUE );
  41.          else
  42.            return( FALSE );
  43.       } 
  44. }
  45. /* end of dbvalid.c */
  46.