home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE5 / CUA_SAMP.ZIP / VALFILE.PRG < prev    next >
Encoding:
Text File  |  1994-06-24  |  2.0 KB  |  74 lines

  1. FUNCTION ValFile
  2. PARAMETERS pcName, pnErrNo
  3. *----------------------------------------------------------------------------
  4. * NAME
  5. *   ValFile() - Vaidate a file name
  6. *
  7. * PARAMETERS
  8. *   pcName     = Name of the file
  9. *   pnErrNo    = Return the error number, 0 if OK, 1 - doesn't exist, ...
  10. *
  11. *----------------------------------------------------------------------------
  12.     PRIVATE lOk, fh, cErrMsg, lVoid
  13.  
  14.     lOk = .T.
  15.     IF AT( " ", LTRIM( TRIM( pcName ) ) ) > 0
  16.         lOk = .F.
  17.         pnErrNo = 1049
  18.         RETURN ( lOk )
  19.     ENDIF
  20.     fh = 0   
  21.     ON ERROR lOk = .F.
  22.     fh = FOPEN( pcName )
  23.     cErrMsg = MESSAGE()
  24.     pnErrNo = ERROR()
  25.     ON ERROR
  26.     IF fh > 0
  27.         lVoid = FCLOSE( fh )
  28.     ENDIF
  29.     IF pnErrNo = 1                      && File not found!
  30.         *----------------------------
  31.         *-- Check for real file names
  32.         *----------------------------
  33.         DO CASE
  34.             CASE SPACE(1) $ LTRIM( TRIM( pcName ) )
  35.                 pnErrNo = 1049
  36.  
  37.             CASE ISBLANK( FileRoot( pcName ) )
  38.                 pnErrNo = 1049
  39.  
  40.             CASE pcName = [<Empty>]
  41.                 pnErrNo = 1049
  42.  
  43.             OTHERWISE
  44.                 *-----------------------------------------
  45.                 *-- Check to see if we can create the file
  46.                 *-- If not, the file name is bogus
  47.                 *-----------------------------------------
  48.                 lOk = .T.
  49.                 ON ERROR lOk = .F.
  50.                 fh = FCREATE( pcName )
  51.                 cErrMsg = MESSAGE()
  52.                 pnErrNo = ERROR()
  53.                 ON ERROR
  54.                 IF fh > 0
  55.                     lVoid = FCLOSE( fh )
  56.                     ERASE ( pcName )
  57.                     pnErrNo = 1
  58.                     lOk = .F.
  59.                 ELSE
  60.                     pnErrNo = 1049
  61.                 ENDIF
  62.         ENDCASE
  63.     ELSE
  64.         IF pnErrNo > 1
  65.             lOk = .F.
  66.         ENDIF
  67.     ENDIF
  68.  
  69.  
  70. RETURN ( lOk )
  71.  
  72. *-- EOF: ValFile( pcName )
  73.  
  74.