Creating GET.NAMES
This issue of BTP/Branches will be using a simple name and address file and update program to demonstrate how B-TREE-P works. The file containing the names and addresses is called NAMES, and GET.NAMES is the program to create or change records in the NAMES file.
To create the GET.NAMES program on your system so that it can serve as the basis for further B-TREE-P demonstrations, give the command EDIT BP GET.NAMES, then use the Editor to create the GET.NAMES program using the following source code:
GET.NAMES
001 OPEN "NAMES" TO NFILE ELSE STOP
002 LOOP
003 CRT "ID NUMBER":
004 INPUT ID
005 UNTIL ID = "" DO
006 READ ITEM FROM NFILE, ID ELSE ITEM = ""
007 AMC = 1 ; LABEL = "FIRST NAME" ; GOSUB 100
008 AMC = 2 ; LABEL = "LAST NAME" ; GOSUB 100
009 AMC = 3 ; LABEL = "COMPANY" ; GOSUB 100
010 AMC = 4 ; LABEL = "ADDRESS" ; GOSUB 100
011 AMC = 5 ; LABEL = "CITY ST" ; GOSUB 100
012 AMC = 6 ; LABEL = "ZIP CODE" ; GOSUB 100
013 CRT "EXIT, FILE, OR DROP":
014 INPUT COMMAND
015 BEGIN CASE
016 CASE COMMAND = "FILE"
017 WRITE ITEM ON NFILE, ID
018 CASE COMMAND = "DROP"
019 DELETE NFILE, ID
020 CASE 1
021 CRT "EXITING"
022 END CASE
023 REPEAT
024 STOP
025 *
026 100 CRT "OLD ":LABEL:"=":ITEM<AMC>
027 CRT "NEW ":LABEL:
028 INPUT NEW
029 IF NEW # "" THEN
030 IF NEW = "\" THEN NEW = ""
031 ITEM<AMC> = NEW
032 END
033 RETURN
034 END
(Note: the EDIT command just described, and other commands described in the rest of this issue, assume that your account has a file called BP where BASIC programs are kept. If necessary, use the proper form of the CREATE-FILE command to create a file named BP before you give the EDIT command. Since Pick systems often vary in exactly what commands are available and how the commands are structured, always check your system's documentation to be sure the format of your commands is the same as those described here.)
Once you have created the GET.NAMES program using the Editor, give the command BASIC BP GET.NAMES to compile the program and check for syntax errors. If your compiler does not allow CRT statements in BASIC programs, change every occurrence of CRT to PRINT.