home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib42a.dsk / JULY.1992 / SWAP.DEMO1.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  59 lines

  1. 10  REM  ***********************
  2. 20  REM  *      SWAP.DEMO1     *
  3. 30  REM  * by Thomas Zuchowski *
  4. 40  REM  * Copyright (C) 1992  *
  5. 50  REM  *   MindCraft Publ.   *
  6. 60  REM  * Lincoln, MA  01773  *
  7. 70  REM  ***********************
  8. 80  DIM A$(2000)
  9. 90 D$ =  CHR$(4)
  10. 100  PRINT "SWAP.DEMO1 by Thomas Zuchowski": PRINT "(C) 1992, MindCraft Publ.": PRINT : PRINT "Reading file..."
  11. 110  PRINT D$;"OPEN DEMOFILE"
  12. 120  PRINT D$;"READ DEMOFILE"
  13. 130  INPUT NUM: REM  NUM= NUMBER OF ACTIVE FILES IN ARRAY
  14. 140  FOR I = 1 TO NUM
  15. 150  INPUT A$(I): NEXT 
  16. 160  PRINT D$;"CLOSE"
  17. 170  REM 
  18. 180  REM  * MENU ROUTINE *
  19. 190  PRINT : PRINT : PRINT 
  20. 200  PRINT  CHR$(7);"Select one of the following:"
  21. 210  PRINT "1. List": PRINT "2. Insert": PRINT "3. Delete": PRINT "0. Exit"
  22. 220  GET K$: IF K$ = "0"  THEN  END 
  23. 230 A =  VAL(K$): ON A GOTO 380,440,530
  24. 240  GOTO 190
  25. 250  REM  * SEARCH ROUTINE *
  26. 260  FOR I = 1 TO NUM  STEP 100
  27. 270  IF K$ >A$(I)  THEN  NEXT 
  28. 280 I = I -100: IF I <1  THEN I = 1
  29. 290  FOR J = I TO NUM  STEP 10
  30. 300  IF K$ >A$(J)  THEN  NEXT 
  31. 310 J = J -10: IF J <1  THEN J = 1
  32. 320  FOR K = J TO NUM
  33. 330  IF K$ >A$(K)  THEN  NEXT 
  34. 340 FLAG = 0
  35. 350  IF K$ < >A$(K)  THEN FLAG = 1: REM  SET FLAG IF ITEM DOES NOT EXIST IN ARRAY
  36. 360  RETURN : REM  K=LOCATION IN ARRAY OF ITEM K$
  37. 370  REM  * LIST ROUTINE *
  38. 380  FOR I = 1 TO NUM
  39. 390  PRINT A$(I)
  40. 400  IF  INT(I/20) = I/20  THEN  PRINT "Press any key for more or <ESC> for menu": GET K$: IF K$ =  CHR$(27)  THEN 190
  41. 410  NEXT 
  42. 420  GOTO 190
  43. 430  REM  * INSERTION ROUTINE *
  44. 440  INPUT "What number to insert? ";K$
  45. 450  GOSUB 260: REM  FIND PROPER LOCATION IN ARRAY OF K$
  46. 460  IF FLAG = 0  THEN  PRINT "ITEM ALREADY ENTERED"; CHR$(7): GOTO 190
  47. 470 NUM = NUM +1
  48. 480  FOR I = NUM TO K  STEP  -1
  49. 490 A$(I) = A$(I -1): NEXT 
  50. 500 A$(K) = K$
  51. 510  GOTO 190
  52. 520  REM  * DELETION ROUTINE *
  53. 530  INPUT "What number to delete? ";K$
  54. 540  GOSUB 260: REM  FIND LOCATION OF ITEM IN ARRAY
  55. 550  IF FLAG = 1  THEN  PRINT "ITEM NOT ENTERED"; CHR$(7): GOTO 190
  56. 560 NUM = NUM -1
  57. 570  FOR I = K TO NUM
  58. 580 A$(I) = A$(I +1): NEXT 
  59. 590  GOTO 190