home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / arexx / moos / demos / rexx_dos.rexx < prev    next >
OS/2 REXX Batch file  |  1997-03-23  |  9KB  |  388 lines

  1. /*
  2.  * rexx_[SUB].library
  3.  *
  4.  * Test file...
  5.  */
  6.  
  7. OPTIONS RESULTS
  8. lib = 'rexxMOOS.library'; IF ~SHOW('L',lib) THEN CALL ADDLIB(lib,100,-30)
  9.  
  10.                                                                               
  11. /*
  12.  *    ReadArgs()
  13.  */
  14. CALL print(4,'#',"ReadArgs(string,template,options)")
  15.  
  16. DROP file add quiet
  17. str = "mio tuo suo add"
  18. tpl = "FILE/M,ADD/S,QUIET=Q/S"
  19. CALL print(20,'-','ReadArgs("'str'","'tpl'","opt.*")')
  20. IF ReadArgs(str,tpl,"opt.*") THEN DO
  21.     SAY "OPT.FILE.0 =" opt.file.0
  22.     DO n = 1 FOR opt.file.0
  23.         SAY "OPT.FILE."n "=" opt.file.n
  24.     END
  25.     SAY "OPT.ADD    =" opt.add
  26.     SAY "OPT.QUIET  =" opt.quiet
  27.     END
  28. DROP opt.
  29.  
  30. CALL print(20,'-','ReadArgs("'str'","'tpl'","opt.")')
  31. IF ReadArgs(str,tpl,"opt.") THEN DO
  32.     SAY "OPT.FILE.COUNT =" opt.file.count
  33.     DO n = 0 FOR opt.file.count
  34.         SAY "OPT.FILE."n "=" opt.file.n
  35.     END
  36.     SAY "OPT.ADD    =" opt.add
  37.     SAY "OPT.QUIET  =" opt.quiet
  38.     END
  39. DROP opt.
  40.  
  41. str = "29 12 68 A D"
  42. tpl = "ID/N/M,Append=A/S,Delete=D/S"
  43. CALL print(20,'-','ReadArgs("'str'","'tpl'")')
  44. IF ReadArgs(str,tpl) THEN DO
  45.     SAY "ID.COUNT =" id.count
  46.     DO n = 0 FOR id.count
  47.         SAY "ID."n "=" id.n
  48.     END
  49.     SAY "APPEND =" append
  50.     SAY "DELETE =" delete
  51.     END
  52.  
  53. DROP id. append delete
  54.  
  55.                                                                               
  56. /*
  57.  *    WriteFile()
  58.  */
  59. CALL print(4,'#',"WriteFile(file,string,options)")
  60.  
  61. str = "Test string..."
  62. CALL print(20,'-','WriteFile("T:prova","'str'")')
  63. IF WriteFile("T:prova",str) THEN DO
  64.     ADDRESS COMMAND 'Type "T:prova"'
  65.     CALL print(20,'-','WriteFile("T:prova","'str'","Append")')
  66.     IF WriteFile("T:prova",str,"Append") THEN DO
  67.         ADDRESS COMMAND 'Type "T:prova"'
  68.     END
  69.     ADDRESS COMMAND 'Delete "T:prova" QUIET'
  70. END
  71.                                                                               
  72. /*
  73.  *    WaitForChar()
  74.  */
  75. CALL print(4,'#',"WaitForChar(stream,options)")
  76.  
  77. strm = 'STDIN'
  78. opts = "5000 FH"
  79. CALL print(20,'-','WaitForChar('strm',"'opts'")')
  80. IF WaitForChar(strm,opts) THEN
  81.     SAY "At least one characters arrived to" strm
  82. ELSE "Timeout..."
  83.  
  84. strm = "CON:"
  85. opts = "5000"
  86. CALL print(20,'-','WaitForChar('strm',"'opts'")')
  87. IF WaitForChar(strm,opts) THEN
  88.     SAY "At least one characters arrived to" strm
  89. ELSE "Timeout..."
  90.  
  91.                                                                               
  92. /*
  93.  *    SplitPath()
  94.  */
  95. CALL print(4,'#',"SplitPath(path,options)")
  96.  
  97. dir = "DF0:foo/bar/moos-startup"
  98. CALL print(20,'-',"SplitPath('"dir"')")
  99. SAY SplitPath(dir)
  100.  
  101. CALL print(20,'-',"SplitPath('"dir"','Path')")
  102. SAY SplitPath(dir,"Path")
  103.  
  104. CALL print(20,'-',"SplitPath('"dir"','test.')")
  105. SAY SplitPath(dir,"test.")
  106. SAY "test.DirPart  ==" test.DirPart
  107. SAY "Test.FilePart ==" test.FilePart
  108.  
  109. DROP test.
  110.  
  111.                                                                               
  112. /*
  113.  *    SetVar()
  114.  *    GetVar()
  115.  *    DeleteVar()
  116.  */
  117. CALL print(4,'#',"SetVar(name,value,options)")
  118. var = "test"
  119. val = "the variable content..."
  120. CALL print(20,'-','SetVar("'var'",val)')
  121. SAY SetVar(var,val)
  122.  
  123. CALL print(4,'#',"GetVar(name,options)")
  124. CALL print(20,'-','GetVar("language")')
  125. SAY "language ==" GetVar("language")
  126.  
  127. CALL print(20,'-','GetVar("'var'","Exists")')
  128. SAY GetVar(var,"Exists")
  129.  
  130. CALL print(4,'#',"DeleteVar(name,options)")
  131. CALL print(20,'-','DeleteVar("'var'")')
  132. SAY DeleteVar(var)
  133.  
  134.                                                                               
  135. /*
  136.  *    SameLock()
  137.  */
  138. CALL print(4,'#',"SameLock(path1,path2)")
  139.  
  140. path1 = "C:List"
  141. path2 = "SYS:c/list"
  142. CALL print(20,'-','SameLock("'path1'","'path2'")')
  143. SAY SameLock(path1,path2)
  144.  
  145. path1 = "C:"
  146. path2 = "SYS:c"
  147. CALL print(20,'-','SameLock("'path1'","'path2'")')
  148. SAY SameLock(path1,path2)
  149.  
  150. path2 = "SYS:s"
  151. CALL print(20,'-','SameLock("'path1'","'path2'")')
  152. SAY SameLock(path1,path2)
  153.  
  154. path2 = "RAM:"
  155. CALL print(20,'-','SameLock("'path1'","'path2'")')
  156. SAY SameLock(path1,path2)
  157.  
  158.                                                                               
  159. /*
  160.  *    SameDevice()
  161.  */
  162. CALL print(4,'#',"SameDevice()")
  163.  
  164. path1 = "RAM:t"
  165. path2 = "System:"
  166. CALL print(20,'-','SameDevice("'path1'","'path2'")')
  167. SAY SameDevice(path1,path2)
  168.  
  169. path1 = "C:List"
  170. path2 = "Devs:serial.device"
  171. CALL print(20,'-','SameDevice("'path1'","'path2'")')
  172. SAY SameDevice(path1,path2)
  173.  
  174.                                                                               
  175. /*
  176.  *    ReadFile()
  177.  */
  178. CALL print(4,'#',"ReadFile(file,options)")
  179.  
  180. CALL print(20,'-','ReadFile("ENV:language")')
  181. SAY "language ==" ReadFile("ENV:language")
  182.  
  183.                                                                               
  184. /*
  185.  *    MaxCli()
  186.  */
  187. CALL print(4,'#',"MaxCli()")
  188.  
  189. CALL print(20,'-','MaxCli()')
  190. SAY "There are at most" MaxCli() "Cli processes..."
  191.  
  192.                                                                               
  193. /*
  194.  *    MatchPattern()
  195.  */
  196. CALL print(4,'#',"MatchPattern(pattern,string,options)")
  197.  
  198. CALL print(20,'-','MatchPattern("#?Con#?","L:Kingcon-handler")')
  199. SAY MatchPattern("#?Con#?","L:Kingcon-handler")
  200.  
  201. CALL print(20,'-','MatchPattern("#?Con#?","L:Kingcon-handler","Case")')
  202. SAY MatchPattern("#?Con#?","L:Kingcon-handler","Case")
  203.  
  204.                                                                               
  205. /*
  206.  *    IsInteractive()
  207.  */
  208. CALL print(4,'#',"IsInteractive(file,options)")
  209.  
  210. file = "CON:"
  211. CALL print(20,'-','IsInteractive("'file'")')
  212. SAY IsInteractive(file)
  213.  
  214. file = "RAM:"
  215. CALL print(20,'-','IsInteractive("'file'")')
  216. SAY IsInteractive(file)
  217.  
  218. CALL print(20,'-','IsInteractive(STDIN,'FH')')
  219. SAY IsInteractive(STDIN,'FH')
  220.  
  221.                                                                               
  222. /*
  223.  *    IsFileSystem()
  224.  */
  225. CALL print(4,'#',"IsFileSystem(devicename)")
  226.  
  227. dev = "CON:"
  228. CALL print(20,'-','IsFileSystem("'dev'")')
  229. SAY IsFileSystem(dev)
  230.  
  231. dev = "RAM:"
  232. CALL print(20,'-','IsFileSystem("'dev'")')
  233. SAY IsFileSystem(dev)
  234.  
  235.                                                                               
  236. /*
  237.  *    Info()
  238.  */
  239. CALL print(4,'#',"Info(path,options)")
  240.  
  241. path = "SYS:"
  242. CALL print(20,'-','Info("'path'","ex.")')
  243. IF Info(path,"ex.") THEN DO
  244.     SAY "VolumeName    " ex.VolumeName
  245.     SAY "DateStamp     " ex.DateStamp
  246.     SAY "NumSoftErrors " ex.NumSoftErrors
  247.     SAY "UnitNumber    " ex.UnitNumber
  248.     SAY "DiskState     " ex.DiskState
  249.     SAY "NumBlocks     " ex.NumBlocks
  250.     SAY "NumBlocksUsed " ex.NumBlocksUsed
  251.     SAY "BytesPerBlock " ex.BytesPerBlock
  252.     SAY "DiskType      " ex.DiskType
  253.     SAY "InUse         " ex.InUse
  254.     END
  255.  
  256. DROP ex.
  257.  
  258.                                                                               
  259. /*
  260.  *    Execute()
  261.  */
  262. CALL print(4,'#',"Execute(command,options)")
  263.  
  264. cmd = "Status FULL"
  265. CALL print(20,'-','Execute("'cmd'","out.")')
  266. IF Execute(cmd,"out.") THEN
  267.     DO n = 0 FOR out.count
  268.         SAY out.n
  269.     END
  270.  
  271. DROP out.
  272.  
  273.                                                                               
  274. /*
  275.  *    Examine()
  276.  */
  277. CALL print(4,'#',"Examine(path,options)")
  278.  
  279. pat = "c:List"
  280. CALL print(20,'-','Examine("'pat'","ex.")')
  281. IF Examine(pat,"ex.") THEN DO
  282.     SAY "DiskKey     " ex.DiskKey
  283.     SAY "DirEntryType" ex.DirEntryType
  284.     SAY "FileName    " ex.FileName
  285.     SAY "Protection  " ex.Protection
  286.     SAY "EntryType   " ex.EntryType
  287.     SAY "Size        " ex.Size
  288.     SAY "NumBlocks   " ex.NumBlocks
  289.     SAY "Comment     " ex.Comment
  290.     SAY "WeekDay     " ex.WeekDay
  291.     SAY "Date        " ex.Date
  292.     SAY "Time        " ex.Time
  293.     SAY "OwnerUID    " ex.OwnerUID
  294.     SAY "OwnerGID    " ex.OwnerGID
  295.     END
  296.  
  297. DROP ex.
  298.  
  299.                                                                               
  300. /*
  301.  *    ExAll()
  302.  */
  303. CALL print(4,'#',"ExAll(pattern,options)")
  304.  
  305. DROP ex.
  306. pat = "devs:#?.device"
  307. CALL print(20,'-','ExAll("'pat'","ex.")')
  308. IF ExAll(pat,"ex.") THEN
  309.     DO n = 0 FOR ex.count
  310.         SAY "Name" ex.n.Name
  311.     END
  312.  
  313. DROP ex.                /* we need a new, clear stem */
  314. pat = "Libs:xpk#?"        /* the pattern to be examine */
  315. CALL print(20,'-','ExAll("'pat'","ex.* Fields 14")')
  316. IF ExAll(pat,"ex.* Fields 14") THEN
  317.     DO n = 1 FOR ex.0
  318.         SAY "Name" ex.n.Name
  319.         SAY "Prot" ex.n.Prot
  320.     END
  321.  
  322. DROP ex.
  323. pat = "Libs:req#?"
  324. CALL print(20,'-','ExAll("'pat'","ex. Type 6")')
  325. IF ExAll(pat,"ex. Type 6") THEN
  326.     DO n = 0 FOR ex.count
  327.         SAY "Name" ex.n.Name
  328.         SAY "Type" ex.n.Type
  329.         SAY "Size" ex.n.Size
  330.         SAY "Prot" ex.n.Prot
  331.         SAY "WDay" ex.n.WDay
  332.         SAY "Date" ex.n.Date
  333.         SAY "Time" ex.n.Time
  334.         SAY "Note" ex.n.Note
  335.     END
  336.  
  337. DROP ex.
  338.  
  339.                                                                               
  340. /*
  341.  *    Delay()
  342.  */
  343. CALL print(4,'#',"Delay(ticks)")
  344.  
  345. ticks = 100
  346. CALL print(20,'-',"Delay("ticks")")
  347. CALL TIME('r'); CALL Delay(ticks)
  348. SAY ticks "ticks ==" TIME('e') "secs..."
  349.  
  350. ticks = 50
  351. CALL print(20,'-',"Delay("ticks")")        /* Now we're sure that the library    */
  352. CALL TIME('r'); CALL Delay(ticks)        /* is loaded in the system            */
  353. SAY ticks "ticks ==" TIME('e') "secs..."
  354.  
  355.                                                                               
  356. /*
  357.  *    AddPart()
  358.  */
  359. CALL print(4,'#',"AddPart(dirname,filename)")
  360.  
  361. dir  = "DF0:"
  362. file = "bar"
  363. CALL print(20,'-','AddPart("'dir'","'file'")')
  364. SAY AddPart(dir,file)
  365.  
  366. dir  = "RAM:foo"
  367. file = "bar"
  368. CALL print(20,'-','AddPart("'dir'","'file'")')
  369. SAY AddPart(dir,file)
  370.  
  371. dir  = "RAM:foo/"
  372. file = "bar/sub_bar"
  373. CALL print(20,'-','AddPart("'dir'","'file'")')
  374. SAY AddPart(dir,file)
  375.  
  376.                                                                               
  377.  
  378. ADDRESS COMMAND 'Wait' 2
  379.  
  380. SAY
  381. EXIT 0
  382.  
  383. print: PROCEDURE
  384.     PARSE ARG pos,char,str
  385.     IF char = '#' THEN SAY '0a0a'x
  386.     SAY COPIES(char,pos) || OVERLAY(" "str" ",COPIES(char,78 - pos))
  387.     RETURN
  388.