perm filename FREE.SAI[USE,CSR] blob sn#611569 filedate 1981-09-14 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	begin "free"
C00006 ENDMK
C⊗;
begin "free"

comment this will scan the address file, creating another file containing
	the addresses of all customers who are classed as "free".  The list
	will be in FREE.DSK;

comment The method is to move through the address file, one entry at a time.
	If the entry is in the free class (first character after the * is
	F) copy the address into the target file;

define crlf = "('15&'12)";
define ff = "'14";

boolean eof;
integer flag, ichan, ochan, baddr, brchar;
string addr;

comment Set breaktable, to read one address;
setbreak(baddr←getbreak,"*",null,"IS"); 

eof←0;

comment Open channels for input and output;
open(ichan←getchan,"DSK",0,19,0,450,brchar,eof);
open(ochan←getchan,"DSK",0,0,19,0,0,eof);

lookup(ichan,"ADDFIL.DSK",flag);
if flag then print("Can't find address file.",crlf);

enter(ochan,"FREE.DSK",flag);
if flag then print("Can't open target file.",crlf);

comment The main loop.  Proceed through the address file one at a time;
addr←input(ichan, baddr);

do begin "next address"
	if addr="F" then
	    out(ochan,"*"&(if addr[∞ to ∞]=ff then addr[1 to ∞-1] else addr));
	addr←input(ichan,baddr);
    end "next address"
until eof;

close(ichan); close(ochan);

end "free";