home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
coders
/
arexx
/
moos
/
demos
/
rexx_dos.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1997-03-23
|
9KB
|
388 lines
/*
* rexx_[SUB].library
*
* Test file...
*/
OPTIONS RESULTS
lib = 'rexxMOOS.library'; IF ~SHOW('L',lib) THEN CALL ADDLIB(lib,100,-30)
/*
* ReadArgs()
*/
CALL print(4,'#',"ReadArgs(string,template,options)")
DROP file add quiet
str = "mio tuo suo add"
tpl = "FILE/M,ADD/S,QUIET=Q/S"
CALL print(20,'-','ReadArgs("'str'","'tpl'","opt.*")')
IF ReadArgs(str,tpl,"opt.*") THEN DO
SAY "OPT.FILE.0 =" opt.file.0
DO n = 1 FOR opt.file.0
SAY "OPT.FILE."n "=" opt.file.n
END
SAY "OPT.ADD =" opt.add
SAY "OPT.QUIET =" opt.quiet
END
DROP opt.
CALL print(20,'-','ReadArgs("'str'","'tpl'","opt.")')
IF ReadArgs(str,tpl,"opt.") THEN DO
SAY "OPT.FILE.COUNT =" opt.file.count
DO n = 0 FOR opt.file.count
SAY "OPT.FILE."n "=" opt.file.n
END
SAY "OPT.ADD =" opt.add
SAY "OPT.QUIET =" opt.quiet
END
DROP opt.
str = "29 12 68 A D"
tpl = "ID/N/M,Append=A/S,Delete=D/S"
CALL print(20,'-','ReadArgs("'str'","'tpl'")')
IF ReadArgs(str,tpl) THEN DO
SAY "ID.COUNT =" id.count
DO n = 0 FOR id.count
SAY "ID."n "=" id.n
END
SAY "APPEND =" append
SAY "DELETE =" delete
END
DROP id. append delete
/*
* WriteFile()
*/
CALL print(4,'#',"WriteFile(file,string,options)")
str = "Test string..."
CALL print(20,'-','WriteFile("T:prova","'str'")')
IF WriteFile("T:prova",str) THEN DO
ADDRESS COMMAND 'Type "T:prova"'
CALL print(20,'-','WriteFile("T:prova","'str'","Append")')
IF WriteFile("T:prova",str,"Append") THEN DO
ADDRESS COMMAND 'Type "T:prova"'
END
ADDRESS COMMAND 'Delete "T:prova" QUIET'
END
/*
* WaitForChar()
*/
CALL print(4,'#',"WaitForChar(stream,options)")
strm = 'STDIN'
opts = "5000 FH"
CALL print(20,'-','WaitForChar('strm',"'opts'")')
IF WaitForChar(strm,opts) THEN
SAY "At least one characters arrived to" strm
ELSE "Timeout..."
strm = "CON:"
opts = "5000"
CALL print(20,'-','WaitForChar('strm',"'opts'")')
IF WaitForChar(strm,opts) THEN
SAY "At least one characters arrived to" strm
ELSE "Timeout..."
/*
* SplitPath()
*/
CALL print(4,'#',"SplitPath(path,options)")
dir = "DF0:foo/bar/moos-startup"
CALL print(20,'-',"SplitPath('"dir"')")
SAY SplitPath(dir)
CALL print(20,'-',"SplitPath('"dir"','Path')")
SAY SplitPath(dir,"Path")
CALL print(20,'-',"SplitPath('"dir"','test.')")
SAY SplitPath(dir,"test.")
SAY "test.DirPart ==" test.DirPart
SAY "Test.FilePart ==" test.FilePart
DROP test.
/*
* SetVar()
* GetVar()
* DeleteVar()
*/
CALL print(4,'#',"SetVar(name,value,options)")
var = "test"
val = "the variable content..."
CALL print(20,'-','SetVar("'var'",val)')
SAY SetVar(var,val)
CALL print(4,'#',"GetVar(name,options)")
CALL print(20,'-','GetVar("language")')
SAY "language ==" GetVar("language")
CALL print(20,'-','GetVar("'var'","Exists")')
SAY GetVar(var,"Exists")
CALL print(4,'#',"DeleteVar(name,options)")
CALL print(20,'-','DeleteVar("'var'")')
SAY DeleteVar(var)
/*
* SameLock()
*/
CALL print(4,'#',"SameLock(path1,path2)")
path1 = "C:List"
path2 = "SYS:c/list"
CALL print(20,'-','SameLock("'path1'","'path2'")')
SAY SameLock(path1,path2)
path1 = "C:"
path2 = "SYS:c"
CALL print(20,'-','SameLock("'path1'","'path2'")')
SAY SameLock(path1,path2)
path2 = "SYS:s"
CALL print(20,'-','SameLock("'path1'","'path2'")')
SAY SameLock(path1,path2)
path2 = "RAM:"
CALL print(20,'-','SameLock("'path1'","'path2'")')
SAY SameLock(path1,path2)
/*
* SameDevice()
*/
CALL print(4,'#',"SameDevice()")
path1 = "RAM:t"
path2 = "System:"
CALL print(20,'-','SameDevice("'path1'","'path2'")')
SAY SameDevice(path1,path2)
path1 = "C:List"
path2 = "Devs:serial.device"
CALL print(20,'-','SameDevice("'path1'","'path2'")')
SAY SameDevice(path1,path2)
/*
* ReadFile()
*/
CALL print(4,'#',"ReadFile(file,options)")
CALL print(20,'-','ReadFile("ENV:language")')
SAY "language ==" ReadFile("ENV:language")
/*
* MaxCli()
*/
CALL print(4,'#',"MaxCli()")
CALL print(20,'-','MaxCli()')
SAY "There are at most" MaxCli() "Cli processes..."
/*
* MatchPattern()
*/
CALL print(4,'#',"MatchPattern(pattern,string,options)")
CALL print(20,'-','MatchPattern("#?Con#?","L:Kingcon-handler")')
SAY MatchPattern("#?Con#?","L:Kingcon-handler")
CALL print(20,'-','MatchPattern("#?Con#?","L:Kingcon-handler","Case")')
SAY MatchPattern("#?Con#?","L:Kingcon-handler","Case")
/*
* IsInteractive()
*/
CALL print(4,'#',"IsInteractive(file,options)")
file = "CON:"
CALL print(20,'-','IsInteractive("'file'")')
SAY IsInteractive(file)
file = "RAM:"
CALL print(20,'-','IsInteractive("'file'")')
SAY IsInteractive(file)
CALL print(20,'-','IsInteractive(STDIN,'FH')')
SAY IsInteractive(STDIN,'FH')
/*
* IsFileSystem()
*/
CALL print(4,'#',"IsFileSystem(devicename)")
dev = "CON:"
CALL print(20,'-','IsFileSystem("'dev'")')
SAY IsFileSystem(dev)
dev = "RAM:"
CALL print(20,'-','IsFileSystem("'dev'")')
SAY IsFileSystem(dev)
/*
* Info()
*/
CALL print(4,'#',"Info(path,options)")
path = "SYS:"
CALL print(20,'-','Info("'path'","ex.")')
IF Info(path,"ex.") THEN DO
SAY "VolumeName " ex.VolumeName
SAY "DateStamp " ex.DateStamp
SAY "NumSoftErrors " ex.NumSoftErrors
SAY "UnitNumber " ex.UnitNumber
SAY "DiskState " ex.DiskState
SAY "NumBlocks " ex.NumBlocks
SAY "NumBlocksUsed " ex.NumBlocksUsed
SAY "BytesPerBlock " ex.BytesPerBlock
SAY "DiskType " ex.DiskType
SAY "InUse " ex.InUse
END
DROP ex.
/*
* Execute()
*/
CALL print(4,'#',"Execute(command,options)")
cmd = "Status FULL"
CALL print(20,'-','Execute("'cmd'","out.")')
IF Execute(cmd,"out.") THEN
DO n = 0 FOR out.count
SAY out.n
END
DROP out.
/*
* Examine()
*/
CALL print(4,'#',"Examine(path,options)")
pat = "c:List"
CALL print(20,'-','Examine("'pat'","ex.")')
IF Examine(pat,"ex.") THEN DO
SAY "DiskKey " ex.DiskKey
SAY "DirEntryType" ex.DirEntryType
SAY "FileName " ex.FileName
SAY "Protection " ex.Protection
SAY "EntryType " ex.EntryType
SAY "Size " ex.Size
SAY "NumBlocks " ex.NumBlocks
SAY "Comment " ex.Comment
SAY "WeekDay " ex.WeekDay
SAY "Date " ex.Date
SAY "Time " ex.Time
SAY "OwnerUID " ex.OwnerUID
SAY "OwnerGID " ex.OwnerGID
END
DROP ex.
/*
* ExAll()
*/
CALL print(4,'#',"ExAll(pattern,options)")
DROP ex.
pat = "devs:#?.device"
CALL print(20,'-','ExAll("'pat'","ex.")')
IF ExAll(pat,"ex.") THEN
DO n = 0 FOR ex.count
SAY "Name" ex.n.Name
END
DROP ex. /* we need a new, clear stem */
pat = "Libs:xpk#?" /* the pattern to be examine */
CALL print(20,'-','ExAll("'pat'","ex.* Fields 14")')
IF ExAll(pat,"ex.* Fields 14") THEN
DO n = 1 FOR ex.0
SAY "Name" ex.n.Name
SAY "Prot" ex.n.Prot
END
DROP ex.
pat = "Libs:req#?"
CALL print(20,'-','ExAll("'pat'","ex. Type 6")')
IF ExAll(pat,"ex. Type 6") THEN
DO n = 0 FOR ex.count
SAY "Name" ex.n.Name
SAY "Type" ex.n.Type
SAY "Size" ex.n.Size
SAY "Prot" ex.n.Prot
SAY "WDay" ex.n.WDay
SAY "Date" ex.n.Date
SAY "Time" ex.n.Time
SAY "Note" ex.n.Note
END
DROP ex.
/*
* Delay()
*/
CALL print(4,'#',"Delay(ticks)")
ticks = 100
CALL print(20,'-',"Delay("ticks")")
CALL TIME('r'); CALL Delay(ticks)
SAY ticks "ticks ==" TIME('e') "secs..."
ticks = 50
CALL print(20,'-',"Delay("ticks")") /* Now we're sure that the library */
CALL TIME('r'); CALL Delay(ticks) /* is loaded in the system */
SAY ticks "ticks ==" TIME('e') "secs..."
/*
* AddPart()
*/
CALL print(4,'#',"AddPart(dirname,filename)")
dir = "DF0:"
file = "bar"
CALL print(20,'-','AddPart("'dir'","'file'")')
SAY AddPart(dir,file)
dir = "RAM:foo"
file = "bar"
CALL print(20,'-','AddPart("'dir'","'file'")')
SAY AddPart(dir,file)
dir = "RAM:foo/"
file = "bar/sub_bar"
CALL print(20,'-','AddPart("'dir'","'file'")')
SAY AddPart(dir,file)
ADDRESS COMMAND 'Wait' 2
SAY
EXIT 0
print: PROCEDURE
PARSE ARG pos,char,str
IF char = '#' THEN SAY '0a0a'x
SAY COPIES(char,pos) || OVERLAY(" "str" ",COPIES(char,78 - pos))
RETURN