1 !        ***** PRODUCE DICTIONARY FROM SEQUENTIAL TEXT FILE *****
2 !
3 !                 TEXT INPUT SHOULD HAVE EXTENSION ".TXT"
4 !              DICTIONARY OUTPUT WILL HAVE EXTENSION ".DCT"
5 !                       TEMPORY FILES USED:  ".A01"
6 !
7 !             IMPLEMENTED BY TRYGVE LODE (LODE/AM) (8/26/85)
8 !               OF LODE DATA CORPORATION, DENVER, COLORADO
9 !
10 !                    USE WITH DO FILE "DICTON.DO"
20 STRSIZ 100
30 MAP1 S,S,100
40 RECSIZ = 1
100 INPUT "File to produce dictionary for:  ",N$ : OPEN #1,N$+".TXT",INPUT
110 OPEN #2,N$+".DCT",OUTPUT : ? "Creating initial word list."
120 INPUT LINE #1,S : IF EOF(1)=1 THEN 210
130 K = 1 : S = UCS(S)
140 IF (K > LEN(S)) THEN 120
150 IF NOT((S[K,K]<"0") OR (S[K,K]>"9" AND S[K,K]<"A") OR (S[K,K]>"Z")) THEN 170
153 K=K+1 : GOTO 140
160 IF (K > LEN(S)) THEN 120
170 J = 0 : W$ = ""
180 IF (S[K,K]<"0") OR (S[K,K]>"9" AND S[K,K]<"A") OR (S[K,K]>"Z") THEN 190
181 J=J+1 : W$=W$+S[K,K]
183 K=K+1 : IF (K <= LEN(S)) THEN 180
190 PRINT #2,W$ : IF RECSIZ < LEN(W$) THEN RECSIZ = LEN(W$)
200 GOTO 140
210 CLOSE #1 : CLOSE #2
220 OPEN #1,N$+".DCT",INPUT : OPEN #2,N$+".A01",OUTPUT
230 ? "Maximum word length = ";RECSIZ : ? "beginning sort."
240 XCALL BASORT,1,2,RECSIZ,RECSIZ,1,0
250 ? "Sort completed." : ? "Writing dictionary." : ? : ?
260 CLOSE #1 : CLOSE #2
270 OPEN #1,N$+".A01",INPUT : OPEN #2,N$+".DCT",OUTPUT
280 Z$=""
290 INPUT #1,S$ : IF EOF(1)=1 THEN 320
300 IF S$=Z$ THEN ? "*"; ELSE Z$=S$ : PRINT #2,S$ : ?:? S$;
310 GOTO 290
320 CLOSE #1 : CLOSE #2 : ? : ? "Done."