home *** CD-ROM | disk | FTP | other *** search
- /*
- ** ModifyFilename
- **
- ** $VER: ModifyFilename 1.2.0 (5.11.93)
- **
- ** This ARexx script contains a function which modifies a filename based upon
- ** user control. This script must be used in conjunction with (and called
- ** after calling) the ModifyFilenameSelect script.
- **
- ** INPUTS
- ** ModifyFNameStr -- string describing how to modify the filename,
- ** as returned by ModifyFilenameSelect.
- **
- ** RETURN
- ** NewFilename -- the modified filename.
- **
- ** This script should work with current versions of ARexx.
- **
- ** Copyright © 1992-1993 ASDG, Incorporated
- ** All Rights Reserved
- */
-
-
- /*ADDRESS "ADPro"*/
-
- OPTIONS RESULTS
-
-
- NL = '0A'X
- SQ = '27'X
- DQ = '22'X
- TRUE = 1
- FALSE = 0
-
-
- PARSE ARG ModifyFNameMode '"'FilenameExt'"' ZeroPrependChars FrameNumIncr SameDirID '"'NewDir'"' '"'OldFilename'"' FrameNum QuoteResult
- /*
- ADDRESS "ADPro" OKAY1 ModifyFNameMode || NL ||,
- FilenameExt || NL ||,
- ZeroPrependChars || NL ||,
- FrameNumIncr || NL ||,
- SameDirID || NL ||,
- NewDir || NL ||,
- OldFilename || NL ||,
- FrameNum || NL ||,
- QuoteResult
- */
-
- LastChar = RIGHT( NewDir, 1 )
- IF (NewDir ~= "") & (LastChar ~= ':') & (LastChar ~= '/') THEN
- NewDir = NewDir || '/'
-
- IF (SameDirID = FALSE) THEN DO
- /*
- ** Replace current directory (path) with new directory (path)
- */
- CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
- PathPart = RESULT
- CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename
- FilePart = RESULT
-
- OldFilename = NewDir || FilePart
- END
-
- IF (ModifyFNameMode = 0) THEN DO
- /*
- ** Use existing filename
- */
- NewFilename = OldFilename
- END
- ELSE IF (ModifyFNameMode = 1) THEN DO
- /*
- ** Remove extension
- */
- FileExtPos = LASTPOS( '.', OldFilename )
- IF (FileExtPos ~= 0) THEN
- NewFilename = LEFT( OldFilename, FileExtPos-1 )
- ELSE
- NewFilename = OldFilename
- END
- ELSE IF (ModifyFNameMode = 2) THEN DO
- /*
- ** Replace extension with ???
- */
- FileExtPos = (LASTPOS( '.', OldFilename )) - 1
- IF (FileExtPos ~= 0) THEN DO
- PeriodPos = LASTPOS( '.', FilenameExt )
- IF (PeriodPos ~= 0) THEN
- NewFilename = LEFT( OldFilename, FileExtPos ) || FilenameExt
- ELSE
- NewFilename = LEFT( OldFilename, FileExtPos ) || '.' || FilenameExt
- END
- ELSE DO
- PeriodPos = LASTPOS( '.', OldFilename )
- IF (PeriodPos ~= 0) THEN
- NewFilename = OldFilename || FilenameExt
- ELSE
- NewFilename = OldFilename || '.' || FilenameExt
- END
- END
- ELSE IF (ModifyFNameMode = 3) THEN DO
- /*
- ** Replace extension with frame number
- */
- IF (ZeroPrependChars = 0) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE
- SubStrLen = ZeroPrependChars
-
- FileExtPos = LASTPOS( '.', OldFilename )
- IF (FileExtPos ~= 0) THEN
- NewFilename = LEFT( OldFilename, FileExtPos ) || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
- ELSE
- NewFilename = OldFilename || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
- END
- ELSE IF (ModifyFNameMode = 4) THEN DO
- /*
- ** Replace filename with ???
- */
- CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
- PathPart = RESULT
-
- NewFilename = PathPart || FilenameExt
- END
- ELSE IF (ModifyFNameMode = 5) THEN DO
- /*
- ** Replace filename with frame number
- */
- IF (ZeroPrependChars = 0) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE
- SubStrLen = ZeroPrependChars
-
- NewFilename = RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
- END
- ELSE IF (ModifyFNameMode = 6) THEN DO
- /*
- ** Replace filename with ???.frame number
- */
- IF (ZeroPrependChars = 0) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE
- SubStrLen = ZeroPrependChars
-
- IF (SameDirID = TRUE) THEN DO
- CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
- PathPart = RESULT
-
- NewFilename = PathPart || FilenameExt || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
- END
- ELSE
- NewFilename = NewDir || FilenameExt || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
- END
- ELSE IF (ModifyFNameMode = 7) THEN DO
- /*
- ** Prepend ???
- */
- CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
- PathPart = RESULT
- CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename
- FilePart = RESULT
-
- NewFilename = PathPart || FilenameExt || FilePart
- END
- ELSE IF (ModifyFNameMode = 8) THEN DO
- /*
- ** Prepend frame number
- */
- CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
- PathPart = RESULT
- CALL "FREDSCRIPTS:FREDFunctions/FileOnly" OldFilename
- FilePart = RESULT
-
- IF (ZeroPrependChars = 0) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE
- SubStrLen = ZeroPrependChars
-
- NewFilename = PathPart || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" ) || "." || FilePart
- END
- ELSE IF (ModifyFNameMode = 9) THEN DO
- /*
- ** Append ???
- */
- NewFilename = OldFilename || FilenameExt
- END
- ELSE IF (ModifyFNameMode = 10) THEN DO
- /*
- ** Append frame number
- */
- IF (ZeroPrependChars = 0) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE IF (ZeroPrependChars < LENGTH( FrameNum+FrameNumIncr )) THEN
- SubStrLen = LENGTH( FrameNum+FrameNumIncr )
- ELSE
- SubStrLen = ZeroPrependChars
-
- NewFilename = OldFilename || "." || RIGHT( FrameNum+FrameNumIncr, SubStrLen, "0" )
- END
- ELSE IF (ModifyFNameMode = 11) THEN DO
- /*
- ** Make Framestore filename
- */
- CALL "FREDSCRIPTS:FREDFunctions/PathOnly" OldFilename
- PathPart = RESULT
-
- IF (FrameNumIncr = (0-1)) THEN DO
- FSFNum = RIGHT( FrameNum, 3, "0" )
- END
- ELSE
- FSFNum = RIGHT( FrameNum, 3, "0" )
-
- IF (FilenameExt = "???") THEN DO
- FSDesc = "Unknown"
- END
- ELSE IF (LENGTH( FilenameExt ) > 12) THEN
- FSDesc = LEFT( FilenameExt, 12 )
- ELSE
- FSDesc = FilenameExt
-
- NewFilename = PathPart || FSFNum || ".FS." || FSDesc
- END
-
- IF (KeepQuoted = TRUE) THEN
- NewFilename = '"' || NewFilename || '"'
-
- RETURN NewFilename
-
- EXIT 0
-