HELP OUTCHARITEM Barrett et al, 1984
outcharitem(<character_consumer>) -> <item_consumer>;
outcharitem(discout<filename>) -> <item_consumer>;
OUTCHARITEM is applied to a character consumer and returns an item consumer,
which behaves exactly like *PR, except that instead of printing the characters
to the terminal via *CHAROUT, it feeds them to the specified character
consumer. Thus, using OUTCHARITEM, the user can direct output to a file and
the screen in the same procedure since *CUCHAROUT has not been redefined.
The procedure MIXOUTPUT outputs items to both the terminal and a file:
define mixoutput(file);
vars outchar outitem list1 list2;
[this is list1] -> list1;
[this is list2] -> list2;
discout(file) -> outchar; ;;; OUTCHAR is a character consumer
outcharitem(outchar) -> outitem; ;;; OUTITEM is an item consumer
outitem(list1); ;;; output to the file
pr('list1 is filed'); ;;; printed on the screen via CHAROUT
pr(newline);
outitem(list2);
pr('list2 is filed');
pr(newline);
outitem(newline);
outitem(termin); ;;; needed to close the file
enddefine;
To call MIXOUTPUT, directing some output to the file called MIX, do:
mixoutput('mix');
list1 is filed
list2 is filed
The file MIX contains: [this is list1] [this is list2]
See also
HELP *CUCHAROUT - holds the character consumer currently in use
HELP *DISCOUT - creates a character consumer for a file or device
HELP *CHAROUT - outputs a character to the terminal
HELP *PR - a variable which holds a printing procedure
HELP *INCHARITEM - converts character repeater procedure into item repeater
REF *ITEMISE - for more on itemisation of input
REF *SYSIO - for details of I/O procedures
HELP *CHAROUT - outputs a character to the terminal
HELP *PRINT - for a list of files on printing proceduresAuthor: Barrett et al, 1984