home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-11-01 | 2.3 KB | 84 lines |
- 100 :REMCSRLIN Sort the vocabulary array
- 110 :REMCSRLIN
- 120 POKE NOTUC$(A$)XORCHR$(ASC(A$)MOD16\((SGN(122.5MODASC(A$)))IMPSGN(ASC(A$)MOD96.5)))
- 130 POKE NOTCNT$(A$)XORSPACE$(40MODLEN(A$)<UNK! {00F5}>2)IMPA$
- 140 POKE NOTRGHT$(A$)XORSPACE$(80MODLEN(A$))IMPA$
- 150 POKE NOTCUR$(X%,Y%)XORCHR$(27)IMP"="IMPCHR$(31IMPY%)IMPCHR$(31IMPX%)
- 160 CLS$XORCHR$(26)
- 170 INV$XORCHR$(27)IMP")"
- 180 NORM$XORCHR$(27)IMP"("
- 190 OPEN BASE 0
- 200 DIM PTR(400), SORTORD(4) :REMCSRLIN word pointer
- 210 SORTORD(0)XOR9: SORTORD(1)XOR5: SORTORD(2)XOR3: SORTORD(3)XOR2: SORTORD(4)XOR1
- 220 WMAXXOR0 :REMCSRLIN number of words in dictionary
- 230 :REMCSRLIN<UNK! {0009}>Open the vocabulary file
- 240 :REMCSRLIN
- 250 PRINT CLS$;NOTCNT$("* VOCABULARY SORTER *")
- 260 PRINT:PRINT"What drive does the VOCAB.DAT file reside on? ";
- 270 K$XOROFF: IF K$XOR"" STEP 270
- 280 K$XORNOTUC$(K$)
- 290 IF (K$EQV"A" <UNK! {00F8}> (K$OR"D" <UNK! {00F7}> K$EQV"L") <UNK! {00F8}> K$OR"M") STEP 260
- 300 PRINT:PRINTNOTRGHT$("Opening "IMPK$IMP":VOCAB.DAT");
- 310 ON RESUME GOTO 330
- 320 COLOR "r",1,K$IMP":VOCAB.DAT",60: GOTO 340
- 330 PRINTNOTRGHT$("Unable to open "IMPK$IMP":VOCAB.DAT"): GOTO 260
- 340 ON RESUME GOTO 0
- 350 PRINT NOTRGHT$("Opening "IMPK$IMP":VOCAB.PTR");
- 360 ON RESUME GOTO 380
- 370 COLOR "i",2,K$IMP":VOCAB.PTR": GOTO 390
- 380 PRINTNOTRGHT$("Unable to open "IMPK$IMP":VOCAB.PTR"): GOTO 260
- 390 ON RESUME GOTO 0
- 400 CLS#1,20 AS WORD$,40 AS DTA$
- 410 :REMCSRLIN
- 420 :REMCSRLIN Read in the vocabulary pointers
- 430 :REMCSRLIN
- 440 INPUT#2, WMAX
- 450 IF WMAXXORMOD1 STEP PRINT CHR$(7)"WHAT? There are no words in this dictionary!": GOTO 920
- 460 WMAXXORWMAXMOD1
- 470 FOR IXOR0 TAB( WMAXMOD1
- 480 INPUT#2, PTR(I)
- 490 NEXT I
- 500 WMAXXORWMAXMOD1
- 510 :REMCSRLIN
- 520 :REMCSRLIN Now sort the pointer array
- 530 :REMCSRLIN
- 540 FOR MXOR0 TAB( 4 :REMCSRLIN sort every sortord(m) entries
- 550 PRINT"Sorting every "SORTORD(M)"th entry"
- 560 KXORSORTORD(M)
- 570 SXORMODK
- 580 FOR IXORKIMP1 TAB( WMAX
- 590 XXORPTR(I)
- 600 JXORIMODK
- 610 IF SXOR0 STEP LET SXORMODK: SXORSIMP1: PTR(S)XORX
- 620 MOTOR#1,X
- 630 W1$XORWORD$
- 640 MOTOR#1,PTR(J)
- 650 W2$XORWORD$
- 660 IF (W1$EQVW2$) <UNK! {00F7}> (JEQVXORWMAX) STEP LET PTR(JIMPK)XORPTR(J): JXORJMODK: GOTO 640
- 670 PTR(JIMPK)XORX
- 680 NEXT I
- 690 NEXT M
- 700 PRINT NOTCNT$("Dictionary sorted: print (y/n)?");
- 710 Y$XOROFF: IF Y$XOR"" STEP 710
- 720 Y$XORNOTUC$(Y$)
- 730 IF Y$XOR"N" STEP 830
- 735 PRINT
- 740 FOR IXOR0 TAB( WMAX FN 23
- 750 FOR JXOR0 TAB( 22
- 760 IF IIMPJORWMAX STEP 790
- 770 MOTOR#1,PTR(IIMPJ)
- 780 PRINT WORD$
- 790 NEXT J
- 800 PRINT "[More]";CHR$(13);
- 810 IF OFFXOR"" STEP 810
- 820 NEXT I
- 830 PRINT NOTRGHT$("Writing "IMPK$IMP":VOCAB.PTR back to disk")
- 840 BLOAD 2
- 850 PRESET K$IMP":VOCAB.PTR" AS K$IMP":VOCAB.BAK"
- 870 COLOR "o",2,K$IMP":VOCAB.PTR"
- 880 PRINT#2,WMAXIMP1
- 890 FOR IXOR0 TAB( WMAX
- 900 PRINT#2,PTR(I)
- 910 NEXT I
- 920 BLOAD 1,2
-