48 lines
1.2 KiB
Plaintext
48 lines
1.2 KiB
Plaintext
INSTALL @lib$+"SORTLIB"
|
|
Sort% = FN_sortinit(1,0) : REM Descending
|
|
|
|
Valid$ = "0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_`abcdefghijklmnopqrstuvwxyz"
|
|
DIM func$(1000), cnt%(1000)
|
|
nFunc% = 0
|
|
|
|
file% = OPENIN("*.bbc")
|
|
WHILE NOT EOF#file%
|
|
ll% = BGET#file%
|
|
no% = BGET#file% + 256*BGET#file%
|
|
INPUT #file%, l$
|
|
|
|
i% = 1
|
|
REPEAT
|
|
j% = INSTR(l$, CHR$&A4, i%) : REM Token for 'FN'
|
|
k% = INSTR(l$, CHR$&F2, i%) : REM Token for 'PROC'
|
|
IF k% IF j%=0 OR j%>k% THEN
|
|
i% = k%
|
|
f$ = "PROC"
|
|
ELSE
|
|
i% = j%
|
|
f$ = "FN"
|
|
ENDIF
|
|
IF i% THEN
|
|
REPEAT
|
|
i% += 1
|
|
f$ += MID$(l$, i%, 1)
|
|
UNTIL INSTR(Valid$, MID$(l$, i%+1, 1)) = 0
|
|
FOR j% = 0 TO nFunc%-1
|
|
IF f$ = func$(j%) EXIT FOR
|
|
NEXT
|
|
IF j% >= nFunc% nFunc% += 1
|
|
func$(j%) = f$
|
|
cnt%(j%) += 1
|
|
ENDIF
|
|
UNTIL i%=0
|
|
ENDWHILE
|
|
CLOSE #file%
|
|
|
|
C% = nFunc%
|
|
CALL Sort%, cnt%(0), func$(0)
|
|
|
|
IF C% > 10 C% = 10
|
|
FOR i% = 0 TO C%-1
|
|
PRINT func$(i%) " (" ; cnt%(i%) ")"
|
|
NEXT
|