home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / lang / rexx / 724 < prev    next >
Encoding:
Text File  |  1992-08-17  |  2.8 KB  |  91 lines

  1. Path: sparky!uunet!wupost!sdd.hp.com!mips!darwin.sura.net!jvnc.net!rutgers!psuvax1!psuvm!auvm!DKIBMVM1.VNET.IBM.COM!VALOREV
  2. From: VALOREV@DKIBMVM1.VNET.IBM.COM
  3. Newsgroups: comp.lang.rexx
  4. Subject: SH Backquote
  5. Message-ID: <REXXLIST%92081703384470@UCF1VM.BITNET>
  6. Date: 17 Aug 92 11:49:43 GMT
  7. Sender: REXX Programming discussion list <REXXLIST@UGA.BITNET>
  8. Lines: 79
  9. Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
  10. Comments: To: rexxlist@ucf1vm.cc.ucf.edu
  11.  
  12. Attached please find a piece of code which will do the trick....
  13.  
  14. It contains a sample program which lists the number of files and how much
  15. space they occupie, according to the parms to the program.
  16. And a Generic Subroutine, named BACKQUOTE which do the trick in a VM and
  17. OS/2 enviroment.
  18.  
  19. Please note that this subroutine, is not water proof, but just shows the
  20. idea, BUT it works.
  21.  
  22. If anyone think further explanation is needed, please say so.
  23. Any ideas for improvments are also welcome..
  24.  
  25. With Kind Regards
  26. Victor Valore
  27. Internet: valorev at dkibmvm1.vnet.ibm.com
  28. Bitnet: valorev at vnet
  29.  
  30.  
  31. /**/
  32. ARG fn ft fm
  33. CALL backquote x,'listfile' fn ft fm '(noh date'
  34. count=0
  35. DO xx=1 TO x.0
  36.   count=count+word(x.xx,6)
  37. END
  38. SAY 'Total number of files, which matches' fn ft fm 'are' x.0
  39. SAY 'which occupies' count 'Blocks.'
  40. EXIT
  41.  
  42. backquote:
  43. PARSE SOURCE backquoteenv .
  44. SELECT
  45.   WHEN backquoteenv='OS/2' THEN DO
  46.     ADDRESS CMD 'x'ARG(2) 'Y RXQUEUE'
  47.     backquotex=0
  48.     DO QUEUED()
  49.       backquotex=backquotex+1
  50.       INTERPRET PARSE PULL ARG(1)'.backquotex'
  51.     END
  52.     INTERPRET ARG(1)'.0=backquotex'
  53.   END
  54.   WHEN backquoteenv='CMS' THEN DO
  55.     EXECIO '* CP (STEM BACKQUOTE. STRING QUERY SET'
  56.     DO backquotex=1 TO backquote.0
  57.       DO backquotexx=1 TO words(backquote.backquotex)
  58.         IF WORD(backquote.backquotex,backquotexx)^='IMSG' THEN ITERATE
  59.         backquoteimsg=WORD(backquote.backquotex,backquotexx+1)
  60.         parse var backquoteimsg backquoteimsg ',' .
  61.         LEAVE
  62.       END
  63.     END
  64.     ADDRESS CMS CP SET IMSG OFF
  65.     SPOOL CONS CLOSE PURGE
  66.     SPOOL CONS START NOTERM
  67.     ADDRESS CMS ARG(2)
  68.     SPOOL CONS STOP CLOSE TERM TO USERID() FORM BACKQUOT
  69.     execio '* cp (STEM BACKQUOTE. STRING QUERY RDR'
  70.     do backquotex=2 to BACKQUOTE.0
  71.       parse var backquote.backquotex fromuser file class device . . . form .
  72.       if fromuser=userid() & form=backquot THEN do
  73.         set cmstype ht
  74.         receive file backquot $$data$$ a3 '(NOPrompt'
  75.         set cmstype rt
  76.         'EXECIO * DISKR backquot $$data$$ a (STEM BACKQUOTE.'
  77.         do backquotexx=1 to backquote.0
  78.           interpret arg(1)'.backquotexx=backquote.backquotexx'
  79.         end
  80.         interpret arg(1)'.0=backquote.0'
  81.         drop backquote.
  82.         leave
  83.       end
  84.     end
  85.     ADDRESS CMS CP SET IMSG backquoteimsg
  86.   END
  87.   OTHERWISE
  88.     SAY 'Unknown Enviroment...' backquoteenv
  89. END
  90. RETURN VALUE(ARG(1)'.0')
  91.