INCLUDE "D2:PRINTF.ACT" ;from the Action! Tool Kit CARD ARRAY histogram(256) PROC Clear() INT i FOR i=0 TO 255 DO histogram(i)=0 OD RETURN PROC ProcessLine(CHAR ARRAY line) INT i FOR i=1 TO line(0) DO histogram(line(i))==+1 OD RETURN PROC ProcessFile(CHAR ARRAY fname) CHAR ARRAY line(255) BYTE dev=[1] Close(dev) Open(dev,fname,4) WHILE Eof(dev)=0 DO InputSD(dev,line) ProcessLine(line) OD Close(dev) RETURN PROC PrintResult() INT i CHAR ARRAY s(10) FOR i=0 TO 255 DO IF histogram(i) THEN StrC(histogram(i),s) PrintF(" %C:%-5S",i,s) FI OD RETURN PROC Main() CHAR ARRAY fname="H6:LETTE_KJ.ACT" BYTE LMARGIN=$52,old old=LMARGIN LMARGIN=0 ;remove left margin on the screen Put(125) PutE() ;clear the screen PrintF("Reading ""%S""...%E%E",fname) ProcessFile(fname) PrintResult() LMARGIN=old ;restore left margin on the screen RETURN