home *** CD-ROM | disk | FTP | other *** search
/ RBBS in a Box Volume 1 #2 / RBBS_vol1_no2.iso / 096z / sort.bas < prev    next >
BASIC Source File  |  1985-01-17  |  2KB  |  90 lines

  1. 140 N=1000:E$="END
  2. 150 DIM A$(N):I=1:GOTO 390
  3. 160 GOSUB 620:K=1
  4. 170 IF K>N THEN 210
  5. 180 PRINT K;:LINE INPUT R$:IF R$=E$ THEN 210
  6. 190 IF LEN(R$)=0 THEN 180
  7. 200 A$(K)=R$:K=K+1:GOTO 170
  8. 210 K=K-1
  9. 220 PRINT K;"ITEMS ENTERED."
  10. 230 GOTO 440
  11. 240 IF K=1 OR K=0 THEN 320
  12. 250 PRINT"SORTING..."
  13. 260 FOR J=K TO 2 STEP -1
  14. 270 R$=A$(1):F=1
  15. 280 FOR L=2 TO J
  16. 290 IF A$(L)>R$ THEN R$=A$(L):F=L
  17. 300 NEXT:A$(F)=A$(J):A$(J)=R$
  18. 310 NEXT
  19. 320 PRINT K;"ITEMS SORTED."
  20. 330 GOTO 440
  21. 340 IF K=0 THEN PRINT"ZERO DATA ITEMS":GOTO 440
  22. 350 FOR J=1 TO K
  23. 360 PRINT J;TAB(6);A$(J)
  24. 370 NEXT
  25. 380 GOTO 440
  26. 390 KEY OFF:SCREEN 0,0:COLOR 2,0:CLS
  27. 400 PRINT"**** SORTLIST ****"
  28. 410 PRINT
  29. 420 PRINT
  30. 430 PRINT N;"ITEMS MAXIMUM."
  31. 440 PRINT
  32. 450 PRINT"PRESS A KEY TO CONTINUE";
  33. 460 DEF SEG:POKE 106,0
  34. 470 R$=INKEY$:IF LEN(R$)=0 THEN 470
  35. 480 PRINT:PRINT
  36. 490 PRINT"OPTIONS:"
  37. 500 PRINT"1 ENTER DATA FROM KEYBOARD"
  38. 510 PRINT"2 READ DISK FILE"
  39. 520 PRINT"3 WRITE DATA TO DISK FILE"
  40. 530 PRINT"4 SORT DATA ALPHABETICALLY"
  41. 540 PRINT"5 DISPLAY DATA NOW IN MEMORY"
  42. 550 PRINT"6 END PROGRAM"
  43. 560 PRINT
  44. 570 PRINT"ENTER 1-6 AND PRESS ENTER KEY."
  45. 580 INPUT R$:R=VAL (R$)
  46. 590 IF R<1 OR R>6 THEN 570
  47. 600 ON R GOTO 160,700,880,240,340,1020
  48. 610 STOP
  49. 620 PRINT
  50. 630 PRINT"ENTER EACH ITEM BELOW."
  51. 640 PRINT
  52. 650 PRINT N;"ITEMS MAXIMUM."
  53. 660 PRINT
  54. 670 PRINT CHR$(39);E$;CHR$(39);" ENDS THE LIST."
  55. 680 PRINT
  56. 690 RETURN
  57. 700 PRINT
  58. 710 PRINT STRING$(40,45)
  59. 720 PRINT"FILES ON DISK ARE:"
  60. 730 FILES
  61. 740 PRINT STRING$(40,45)
  62. 750 INPUT"FILESPEC TO READ";F$
  63. 760 IF LEN(F$)=0 THEN 440
  64. 770 OPEN F$ FOR INPUT AS #1
  65. 780 K=1
  66. 790 IF K>N THEN CLOSE #1:GOTO 830
  67. 800     IF EOF(1) THEN CLOSE #1:GOTO 850
  68. 810 LINE INPUT #1,R$
  69. 820 A$(K)=R$:K=K+1:GOTO 790
  70. 830 PRINT N;"ITEMS WERE READ -- **MAXIMUM**"
  71. 840 BEEP
  72. 850 K=K-1
  73. 860 PRINT K;"ITEMS READ FROM DISK."
  74. 870 GOTO 440
  75. 880 PRINT
  76. 890 PRINT STRING$(40,45)
  77. 900 PRINT"FILES ON DISK ARE:"
  78. 910 FILES
  79. 920 PRINT STRING$(40,45)
  80. 930 INPUT"FILESPEC TO WRITE";F$
  81. 940 IF LEN(F$)=0 THEN 440
  82. 950 OPEN F$ FOR OUTPUT AS #1
  83. 960 IF K=0 THEN 990
  84. 970 FOR J=1 TO K
  85. 980 PRINT #1,A$(J):NEXT
  86. 990 CLOSE #1
  87. 1000 PRINT K;"ITEMS WRITTEM TO FILE."
  88. 1010 GOTO 440
  89. 1020 END
  90.