home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib42a.dsk
/
JULY.1992
/
SWAP.DEMO1.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
59 lines
10 REM ***********************
20 REM * SWAP.DEMO1 *
30 REM * by Thomas Zuchowski *
40 REM * Copyright (C) 1992 *
50 REM * MindCraft Publ. *
60 REM * Lincoln, MA 01773 *
70 REM ***********************
80 DIM A$(2000)
90 D$ = CHR$(4)
100 PRINT "SWAP.DEMO1 by Thomas Zuchowski": PRINT "(C) 1992, MindCraft Publ.": PRINT : PRINT "Reading file..."
110 PRINT D$;"OPEN DEMOFILE"
120 PRINT D$;"READ DEMOFILE"
130 INPUT NUM: REM NUM= NUMBER OF ACTIVE FILES IN ARRAY
140 FOR I = 1 TO NUM
150 INPUT A$(I): NEXT
160 PRINT D$;"CLOSE"
170 REM
180 REM * MENU ROUTINE *
190 PRINT : PRINT : PRINT
200 PRINT CHR$(7);"Select one of the following:"
210 PRINT "1. List": PRINT "2. Insert": PRINT "3. Delete": PRINT "0. Exit"
220 GET K$: IF K$ = "0" THEN END
230 A = VAL(K$): ON A GOTO 380,440,530
240 GOTO 190
250 REM * SEARCH ROUTINE *
260 FOR I = 1 TO NUM STEP 100
270 IF K$ >A$(I) THEN NEXT
280 I = I -100: IF I <1 THEN I = 1
290 FOR J = I TO NUM STEP 10
300 IF K$ >A$(J) THEN NEXT
310 J = J -10: IF J <1 THEN J = 1
320 FOR K = J TO NUM
330 IF K$ >A$(K) THEN NEXT
340 FLAG = 0
350 IF K$ < >A$(K) THEN FLAG = 1: REM SET FLAG IF ITEM DOES NOT EXIST IN ARRAY
360 RETURN : REM K=LOCATION IN ARRAY OF ITEM K$
370 REM * LIST ROUTINE *
380 FOR I = 1 TO NUM
390 PRINT A$(I)
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
410 NEXT
420 GOTO 190
430 REM * INSERTION ROUTINE *
440 INPUT "What number to insert? ";K$
450 GOSUB 260: REM FIND PROPER LOCATION IN ARRAY OF K$
460 IF FLAG = 0 THEN PRINT "ITEM ALREADY ENTERED"; CHR$(7): GOTO 190
470 NUM = NUM +1
480 FOR I = NUM TO K STEP -1
490 A$(I) = A$(I -1): NEXT
500 A$(K) = K$
510 GOTO 190
520 REM * DELETION ROUTINE *
530 INPUT "What number to delete? ";K$
540 GOSUB 260: REM FIND LOCATION OF ITEM IN ARRAY
550 IF FLAG = 1 THEN PRINT "ITEM NOT ENTERED"; CHR$(7): GOTO 190
560 NUM = NUM -1
570 FOR I = K TO NUM
580 A$(I) = A$(I +1): NEXT
590 GOTO 190