home *** CD-ROM | disk | FTP | other *** search
- /*
- *
- * Rename file(s) with TwinExpres from DOpus.
- *
- * (c) 1994 by K.P. van Beem (2:280/464.2, patrick.van.beem@aobh.xs4all.nl)
- *
- * Based on the DOpusLhaARexx package by Geoff Seeley (but you can better
- * use GuiArc in stead of DOpus and a script, to deal with archives)
- *
- */
-
-
- DOpusPort = 'DOPUS.1'
-
- if ~show(l,"rexxsupport.library") then
- call addlib("rexxsupport.library",0,-30,0)
- if showlist('Ports', DOpusPort) = 0 then do
- say 'Directory Opus Arexx port not found. Aborting.'
- call CleanUp
- end
-
- address 'DOPUS.1'
- options results
-
- /* setup DOpus window and tell user what's happening */
- Busy on
- TopText "Renaming selected files..."
-
-
- /* Get the current path and do file rename */
- 'Status 6 -1'
- GetEntry Result
- FilePath = Result
- if left(FilePath,1) ~= '*' then do
- TopText "You are not in a 'Twin' directory."
- Busy off
- exit
- end
-
- FilePath = SubStr(FilePath,2)
- GetSelectedAll
- SelectedEntries = result
- if SelectedEntries = 'RESULT' then do
- TopText "No files selected."
- call CleanUp
- end
- NumberOfEntries = words(SelectedEntries)
- do EntryNumber = 1 to NumberOfEntries
- Index = word(SelectedEntries, EntryNumber)
- GetEntry Index+1
- Entry = result
- File = strip(left(Entry,25))
- getstring '"Rename' File 'as?"' File
- NewFile = Result
- if NewFile="" | rc~=0 then do
- TopText "You have to specify a new name"
- call CleanUp
- end
- if right(FilePath,1) = ':' then do
- File = Quote(FilePath || File)
- NewFile = Quote(FilePath || NewFile)
- end
- else do
- File = Quote(FilePath || '/' || File)
- NewFile = Quote(FilePath || '/' || NewFile)
- end
- address command 'echo >PPipe: rename' File NewFile
- selection = Index||' 0 0'
- SelectEntry selection
- end
-
- TopText "Ready"
- 'DisplayDir -1'
- address AREXX "Rexx:DOpus/Reread.rexx"
- call CleanUp
-
- exit
-
- /*---------------------------------------------------------------------------*/
-
- CleanUp: /* Remove any files and exit */
- Busy off
- exit
- return
-
- /*--------------------------------------------------------------------------*/
-
- Quote: procedure /* add quotes to string */
- parse arg string
- return '"'||string||'"'
-
- /*--------------------------------------------------------------------------*/
-
- GetWord: procedure /* get word from '|' separated string */
-
- parse arg number,words
-
- if(left(words,1) ~= '|') then
- words = '|'||words
- do i=1 to number
- idx = index(words, '|');
- words = substr(words, idx+1)
- end
- end = index(words, '|') - 1
- if words = "" then
- return ""
- ret_str = substr(words, 1, end)
- return ret_str
-
- /*--------------------------------------------------------------------------*/
-
- CountWords: procedure /* count words from '|' separated string */
-
- parse arg words
-
- count = 0
- idx = index(words, '|')
- do while idx ~= 0
- count = count + 1
- words = substr(words, idx+1)
- idx = index(words, '|')
- end
- return count
-
-