home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / vrac / homonlib.zip / TEMPNAME.BAS < prev    next >
BASIC Source File  |  1995-04-13  |  2KB  |  67 lines

  1. DEFINT A-Z
  2.  
  3. DECLARE FUNCTION TempName$ (path$)
  4.  
  5. 'External functions:
  6.  
  7. DECLARE FUNCTION FileExist (f$)
  8. DECLARE FUNCTION Squeeze$ (orig$, char$)
  9. DECLARE FUNCTION Sstr$ (s!)
  10.  
  11. FUNCTION TempName$ (path$) STATIC
  12. '****************************************************************************
  13. 'Used to create a temporary filename.  The filename will reside in the
  14. ' specified path, or in the current directory if path$ is null.
  15. '
  16. 'The path$ argument may be passed with or without a trailing backslash.
  17. '
  18. 'The filename will consist of a leading underscore, the current value of the
  19. ' system timer, and an extension of ".TMP".
  20. '
  21. 'This standardized naming of temporary files will make it easy to delete any
  22. ' leftover temporary files all at once with a wildcard.
  23. '
  24. '    Example filenames:  _4573921.TMP   _230117.TMP
  25. '
  26. '    Example deletion command:  KILL "_*.TMP"
  27. '
  28. 'The filename given by TempName$() is stored in a static variable in case the
  29. ' function is called more than once in the same 100th of a second (It's not
  30. ' as unlikely as you think).  This allows you to get two or more temporary
  31. ' filenames without having to create each one before getting the next one.
  32. ' The function can produce about 20 filenames per second when called in
  33. ' rapid succession.  When called normally (once), I was unable to measure the
  34. ' time it took.
  35. '
  36. 'See function HomePath$() for an example of use.
  37. '
  38. '****************************************************************************
  39.  
  40. STATIC prevname$                        'Remember the last one used.
  41.  
  42. bs$ = "\"                               'For optimization.
  43. us$ = "_"
  44. dot$ = "."
  45. tmp$ = dot$ + "TMP"
  46.  
  47. p$ = path$                              'Use a temp variable for path$.
  48. IF LEN(p$) THEN
  49.      IF RIGHT$(p$, 1) <> bs$ THEN       'Add a trailing backslash if not
  50.           p$ = p$ + bs$                 'provided & not a null string.
  51.      END IF
  52. END IF
  53.  
  54. 'Find a filename that doesn't already exist in the specified path and isn't
  55. 'the same as the last one given:
  56.  
  57. DO
  58.      temp$ = p$ + us$ + Squeeze$(Sstr$(TIMER), dot$) + tmp$
  59. LOOP UNTIL temp$ <> prevname$ AND NOT FileExist(temp$)
  60.  
  61. prevname$ = temp$                       'Record the filename for next time.
  62.  
  63. TempName$ = temp$                       'Return the temporary filename.
  64.  
  65. END FUNCTION
  66.  
  67.