home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a013 / 1.ddi / SOURCE.EXE / F_TEMPFI.PRG < prev    next >
Encoding:
Text File  |  1991-01-25  |  1.4 KB  |  64 lines

  1. *****************************************************************
  2. FUNCTION TEMPFILE (extension, path)
  3. *****************************************************************
  4.  
  5. * Creates a unique temporary filename on the selected disk
  6.  
  7. * Copyright(c) 1991 - James Occhiogrosso
  8.  
  9.  
  10. LOCAL temp_ext, file_name, counter, handle
  11.  
  12. file_name = ''
  13.  
  14. * If path not passed, default to current drive and directory.
  15. IF path = NIL
  16.     path = ''
  17.  
  18. * If path passed without a trailing backslash ("\"), add it.
  19. ELSEIF SUBSTR(path, -1, 1) != '\'
  20.     path = path + '\'
  21.  
  22. ENDIF
  23.  
  24.  
  25. IF extension = NIL
  26.     * Default to TMP if extension not passed
  27.     extension = 'TMP'
  28. ELSE
  29.     * Trim extension to DOS maximum of 3 characters
  30.     extension = SUBSTR(UPPER(extension),1,3)
  31. ENDIF
  32.  
  33.  
  34. FOR counter = 1 TO 9999
  35.  
  36.      * Create unique filename in format TEMPnnnn.EXT
  37.      IF EMPTY(extension)
  38.          file_name = path + 'TEMP' + PADL(counter, 4, '0') + '.'
  39.      ELSE
  40.          file_name = path + 'TEMP' + PADL(counter, 4, '0') + ;
  41.                    '.' + extension
  42.      ENDIF
  43.  
  44.      * See if the file name just created already exists
  45.      IF .NOT. FILE(file_name)
  46.          EXIT
  47.      ENDIF
  48. NEXT
  49.  
  50. IF counter >= 9999
  51.      * Cannot find a unique name, return null string
  52.      file_name = ''
  53.  
  54. ELSE
  55.      * We have a unique file name, create and close file
  56.      handle = FCREATE(file_name)
  57.      file_name = IF (FCLOSE(handle), file_name, '')
  58.  
  59. ENDIF
  60.  
  61. RETURN(file_name)
  62.  
  63.  
  64.