61 lines
933 B
Text
61 lines
933 B
Text
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
|