home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Converter / AD2.55-C.DMS / in.adf / FREDScripts.lha / FREDFunctions / ModifyFilename < prev    next >
Encoding:
Text File  |  1994-01-31  |  5.9 KB  |  238 lines

  1. /*
  2. ** ModifyFilename
  3. **
  4. ** $VER: ModifyFilename 1.2.0 (5.11.93)
  5. **
  6. ** This ARexx script contains a function which modifies a filename based upon
  7. ** user control.  This script must be used in conjunction with (and called
  8. ** after calling) the ModifyFilenameSelect script.
  9. **
  10. ** INPUTS
  11. **    ModifyFNameStr -- string describing how to modify the filename,
  12. **        as returned by ModifyFilenameSelect.
  13. **
  14. ** RETURN
  15. **    NewFilename -- the modified filename.
  16. **
  17. ** This script should work with current versions of ARexx.
  18. **
  19. ** Copyright © 1992-1993 ASDG, Incorporated
  20. ** All Rights Reserved
  21. */
  22.  
  23.  
  24. /*ADDRESS "ADPro"*/
  25.  
  26. OPTIONS RESULTS
  27.  
  28.  
  29. NL = '0A'X
  30. SQ = '27'X
  31. DQ = '22'X
  32. TRUE  = 1
  33. FALSE = 0
  34.  
  35.  
  36. PARSE ARG ModifyFNameMode '"'FilenameExt'"' ZeroPrependChars FrameNumIncr SameDirID '"'NewDir'"' '"'OldFilename'"' FrameNum QuoteResult
  37. /*
  38. ADDRESS "ADPro" OKAY1 ModifyFNameMode || NL ||,
  39.     FilenameExt || NL ||,
  40.     ZeroPrependChars || NL ||,
  41.     FrameNumIncr || NL ||,
  42.     SameDirID || NL ||,
  43.     NewDir || NL ||,
  44.     OldFilename || NL ||,
  45.     FrameNum || NL ||,
  46.     QuoteResult
  47. */
  48.  
  49. LastChar = RIGHT( NewDir, 1 )
  50. IF (NewDir ~= "") & (LastChar ~= ':') & (LastChar ~= '/') THEN
  51.     NewDir = NewDir || '/'
  52.  
  53. IF (SameDirID = FALSE) THEN DO
  54.     /*
  55.     ** Replace current directory (path) with new directory (path)
  56.     */
  57.     CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
  58.     PathPart = RESULT
  59.     CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename
  60.     FilePart = RESULT
  61.  
  62.     OldFilename = NewDir || FilePart
  63. END
  64.  
  65. IF (ModifyFNameMode = 0) THEN DO
  66.     /*
  67.     ** Use existing filename
  68.     */
  69.     NewFilename = OldFilename
  70. END
  71. ELSE IF (ModifyFNameMode = 1) THEN DO
  72.     /*
  73.     ** Remove extension
  74.     */
  75.     FileExtPos = LASTPOS( '.', OldFilename )
  76.     IF (FileExtPos ~= 0) THEN
  77.         NewFilename = LEFT( OldFilename, FileExtPos-1 )
  78.     ELSE
  79.         NewFilename = OldFilename
  80. END
  81. ELSE IF (ModifyFNameMode = 2) THEN DO
  82.     /*
  83.     ** Replace extension with ???
  84.     */
  85.     FileExtPos = (LASTPOS( '.', OldFilename )) - 1
  86.     IF (FileExtPos ~= 0) THEN DO
  87.         PeriodPos = LASTPOS( '.', FilenameExt )
  88.         IF (PeriodPos ~= 0) THEN
  89.             NewFilename = LEFT( OldFilename, FileExtPos ) || FilenameExt
  90.         ELSE
  91.             NewFilename = LEFT( OldFilename, FileExtPos ) || '.' || FilenameExt
  92.     END
  93.     ELSE DO
  94.         PeriodPos = LASTPOS( '.', OldFilename )
  95.         IF (PeriodPos ~= 0) THEN
  96.             NewFilename = OldFilename || FilenameExt
  97.         ELSE
  98.             NewFilename = OldFilename || '.' || FilenameExt
  99.     END
  100. END
  101. ELSE IF (ModifyFNameMode = 3) THEN DO
  102.     /*
  103.     ** Replace extension with frame number
  104.     */
  105.     IF (ZeroPrependChars = 0) THEN
  106.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  107.     ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
  108.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  109.     ELSE
  110.         SubStrLen = ZeroPrependChars
  111.  
  112.     FileExtPos = LASTPOS( '.', OldFilename )
  113.     IF (FileExtPos ~= 0) THEN
  114.         NewFilename = LEFT( OldFilename, FileExtPos ) || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
  115.     ELSE
  116.         NewFilename = OldFilename || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
  117. END
  118. ELSE IF (ModifyFNameMode = 4) THEN DO
  119.     /*
  120.     ** Replace filename with ???
  121.     */
  122.     CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
  123.     PathPart = RESULT
  124.  
  125.     NewFilename = PathPart || FilenameExt
  126. END
  127. ELSE IF (ModifyFNameMode = 5) THEN DO
  128.     /*
  129.     ** Replace filename with frame number
  130.     */
  131.     IF (ZeroPrependChars = 0) THEN
  132.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  133.     ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
  134.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  135.     ELSE
  136.         SubStrLen = ZeroPrependChars
  137.  
  138.     NewFilename = RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
  139. END
  140. ELSE IF (ModifyFNameMode = 6) THEN DO
  141.     /*
  142.     ** Replace filename with ???.frame number
  143.     */
  144.     IF (ZeroPrependChars = 0) THEN
  145.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  146.     ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
  147.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  148.     ELSE
  149.         SubStrLen = ZeroPrependChars
  150.  
  151.     IF (SameDirID = TRUE) THEN DO
  152.         CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
  153.         PathPart = RESULT
  154.         
  155.         NewFilename = PathPart || FilenameExt || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
  156.     END
  157.     ELSE
  158.         NewFilename = NewDir || FilenameExt || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
  159. END
  160. ELSE IF (ModifyFNameMode = 7) THEN DO
  161.     /*
  162.     ** Prepend ???
  163.     */
  164.     CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
  165.     PathPart = RESULT
  166.     CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename
  167.     FilePart = RESULT
  168.  
  169.     NewFilename = PathPart || FilenameExt || FilePart
  170. END
  171. ELSE IF (ModifyFNameMode = 8) THEN DO
  172.     /*
  173.     ** Prepend frame number
  174.     */
  175.     CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
  176.     PathPart = RESULT
  177.     CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename
  178.     FilePart = RESULT
  179.  
  180.     IF (ZeroPrependChars = 0) THEN
  181.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  182.     ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
  183.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  184.     ELSE
  185.         SubStrLen = ZeroPrependChars
  186.  
  187.     NewFilename = PathPart || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) || "." || FilePart
  188. END
  189. ELSE IF (ModifyFNameMode = 9) THEN DO
  190.     /*
  191.     ** Append ???
  192.     */
  193.     NewFilename = OldFilename || FilenameExt
  194. END
  195. ELSE IF (ModifyFNameMode = 10) THEN DO
  196.     /*
  197.     ** Append frame number
  198.     */
  199.     IF (ZeroPrependChars = 0) THEN
  200.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  201.     ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
  202.         SubStrLen = LENGTH( FrameNum+FrameNumIncr )
  203.     ELSE
  204.         SubStrLen = ZeroPrependChars
  205.  
  206.     NewFilename = OldFilename || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
  207. END
  208. ELSE IF (ModifyFNameMode = 11) THEN DO
  209.     /*
  210.     ** Make Framestore filename
  211.     */
  212.     CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
  213.     PathPart = RESULT
  214.  
  215.     IF (FrameNumIncr = (0-1)) THEN DO
  216.         FSFNum = RIGHT( FrameNum, 3, "0" )
  217.     END
  218.     ELSE
  219.         FSFNum = RIGHT( FrameNum, 3, "0" )
  220.  
  221.     IF (FilenameExt = "???") THEN DO
  222.         FSDesc = "Unknown"
  223.     END
  224.     ELSE IF (LENGTH( FilenameExt ) > 12) THEN
  225.         FSDesc = LEFT( FilenameExt, 12 )
  226.     ELSE
  227.         FSDesc = FilenameExt
  228.  
  229.     NewFilename = PathPart || FSFNum || ".FS." || FSDesc
  230. END
  231.  
  232. IF (KeepQuoted = TRUE) THEN
  233.     NewFilename = '"' || NewFilename || '"'
  234.  
  235. RETURN NewFilename
  236.  
  237. EXIT 0
  238.