perm filename TWIN.SAI[USE,CSR]1 blob
sn#499946 filedate 1980-03-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 begin "twin" comment read an address file and print pairs of labels
C00005 ENDMK
C⊗;
begin "twin" comment read an address file and print pairs of labels;
require "head[s,les]" source_file;
! break tables;
scnbrk(todot,<".[">,null,"ins");
break(tolff,lf&ff,cr&tab,"is");
scnbrk(foo," ",null,"xr");
string ifile,ofile,txt;
integer col;
string array chunk[1:6];
string proc leftmax(integer maxln; string chop);
return(if ln(chop)≤maxln then chop else chop[1 to maxln]);
! execution;
ofile←ifile←ask("source file=");
ofile←todot(ofile)&".lpt";
txt←lookout(ifile); ! read this file;
entout(ofile); ! and print this one;
! beginning at top of second page;
do begin "loop"
integer testy; ! 0 = undefined, 1 = filled, 2 = need next;
string procedure ADDRESS; begin ! get the next line;
string ns;
if eof then return(null);
case testy of begin
begin "find next"
do begin ns←txt←input(inch,tolff); foo(ns) end until ln(ns) ∨ eof;
testy←2
end "find next";
return(txt);
begin "neednext"
foo(<ns←txt←input(inch,tolff)>);
if ln(ns)=0 then testy←1;
end
end;
return(txt)
end "ADDRESS";
integer row,col;
chunk[1]←left(34,scan(txt,tolff,brk));
testy←2;
for row←2 thru 6 do chunk[row]←left(34,address);
testy←0;
for row←1 thru 6 do cprint(ouch,chunk[row]," ",leftmax(34,address),↓);
testy←0; address;
end "loop" until eof;
release(inch);
release(ouch);
loded("ftp {score/csd.stanley}labels.lpt←labels.lpt
");
end