You are here



Reviewed by Harry E. Pence

Many important computer applications require that data be stored in or retrieved from data files. Learning these techniques is frequently the next step the student takes after mastering the fundamentals of a programming language. Simpson's book shows how to use data files with the BASICA interpreter on the IBM PC. An understanding of this process should also be helpful when working with other programming languages.
The book does an excellent job of explaining both sequential files .(where the individual data records are always accessed in sequence), as well as random access files (where the records may be accessed in any order). In both cases, the most difficult concepts for the neophyte to grasp are the relationships involving the RAM memory, the disk, and the buffer that acts as a go-between to pass information between these two. The author uses a large number of excellent diagrams to clarify these distinctions. Indeed, this is one of the strongest features of the book.
Many practical examples are chosen to demonstrate the characteristics of the two types of files. For instance, a grade book program is used to develop the essential features of sequential files. Thus, the reader not only learns the principles but also creates a potentially useful utility for his computer. A program to keep track of sales records illustrates the use of random access files. This program will probably be less useful to readers of this journal, but the use of random access files to create a library reference system is described in the appendix. This should be extremely valuable for many chemists. Of course, commercial software is available to do both of these jobs, but many readers will find considerable satisfaction in knowing that they have created their own system and can design it to suit their own needs.
The author assumes "a simple knowledge of the fundamentals of BASIC (pg. xiv)," but it would probably be helpful to have a more extensive background. Although a brief summary of BASIC is provided as an appendix, those who have not done much work with this language should be prepared to look up some material in a standard text. This is especially true in the library reference system, where there are several errors in the program listing.
Simpson is to be complimented for using a step-wise approach to develop the sample systems. He first divides the problem into a sequence of smaller projects, then creates program modules to fulfill each objective. This method makes it less difficult to comprehend the material and also much easier to debug the result. A diskette can be purchased that includes all of the programs. Unless you are a good typist, using this would probably save some frustration, but it might not be as effective for learning how to use data files. There are few better tests of your understanding than trying to locate your typo that is crashing the program. For those who choose the easier way, the author initially presents each of the major techniques by means of a short program which can be used to gain an understanding of the concept.
In general, the sample programs are sophisticated enough to be quite useful. The library utility includes not only routines for up-dating and deleting, but also sorting on one or two fields, printing, and searching records for keywords. Another appendix lists a mailing list management program, which provides sorting, editing, and searching capabilities. The programs do not include much provision for error trapping, and thought this might be reasonable if the only person who will use the program is the one who has written it, most users will probably wish to add more extensive error procedures.
Simpson has written a clear, readable book that does a sound job of introducing the basic principles of random access and sequential file handling procedures. In addition, when the book is completed the reader will have gained several helpful utility programs. The presentation does have a few minor shortcomings, but it would be a reasonable purchase for those who wish to extend their knowledge of BASIC to more advanced programming procedures.
*Department of Chemistry
Oneonta,NY 13820


09/30/85 to 10/04/85