Contents of the VCR.DOC file
V C R F I L E 1.0
Joel Wasserstein's dBASE III/III+
VCR INDEX FILE MAINTENANCE PROGRAM
not (c), 1985, 1986, 1987
Writing this system served two purposes: (1) it gave me and my wife a
way to find out what we had on videotape and what videotape stuff was on,
and (2) it gave me a practical way of un-learning COBOL and learning dBASE
III programming. It was started in late 1985, but mostly done in 1986, once
I had my own PC at home. It is not complete by any means, and it is not the
first of its kind on the BBS (I noticed one about two months ago on some BBS
or other.) It doesn't purport to be a super-relational data base, but what
I learned doing it has stood me in good stead on many more complicated proj-
..But I'm putting it out on the BBS circuit because (1) it's the first thing
I've done I'd consider useful to someone out there in PC/dBASE land; (2) I
have done my share of downloading (and uploading,) and thought it would be
fair to give something of mine in its place; (3) It just might conceivably
show someone something about programming in dBASE III that they don't already
know (but I doubt it.)
..What it does now: You can add films, tv shows, sports events, and just
any general sort of thing you record to the database. You can browse the
database by title, starting with the letter of your choice; you can print
two different reports (one by title, one by tape number;) you can look for
what's on a particular tape; you can go in, browse for a particular record,
then edit any information on it or delete it from the file. You can also
index or reindex the database from the menu.
..WHAT you should have found on VCRFILE.ARC:
VCR.DOC - The file you are reading right now
VCRPROC.PRG - All the .PRG files for VCRFILE made into PROCEDURES
and all rolled up into a single program file
VCR.PRG - A short program file which makes VCRPROC the procedure
of choice and executes the main procedure, VCRMENU
LISTTAP1.FRM \ Two report forms
VCRFILE.DBF \ The VCRFILE database and its two indexes.
VCRTAPE.NDX > VCRFILE is indexed on TAPENUM (VCRTAPE.NDX) and on
VCRTITLE.NDX / a 24 character string composed of the first 12 characters
of the field TITLE and the second 12 characters of the
field EPISODE. (I did this so that I could tell my many
episodes of CHEERS and MOONLIGHTING apart)
...All of what I supply here is totally arbitrary, in that it may not meet
your needs. In fact, look below for where I have found it still doesn't meet
my needs! So if you wish to alter the source code, go ahead! If you make what
you consider a significant improvement, please write me and let me know what
you did...you'll get an acknowledgement if I use the improvement on a
** THIS IS NOT SHAREWARE, IT'S PUBLIC DOMAIN, BUT I WOULD LIKE A CREDIT
IF YOU DISTRIBUTE IT. Please don't take my name off the documentation if
you distribute this further. I'm sort of proud of it, even with its warts
and shortcomings. (I'm also not averse to accepting monetary contributions,
but I am not asking for them)
** HOW TO GET STARTED WITH THE SYSTEM
Floppy: copy all files except VCR.DOC onto a floppy disk, then start up
dBASE or dBASE III from either your floppy or your hard disk.
Issue SET DEFAULT TO A (if the VCR disk is in drive A) or SET DEFAULT
to B (if the VCR disk is in drive B). Then type DO VCR. VCR will set
the PROCEDURE to VCRPROC and call the main menu to the screen.
And you're ready to roll.
Hard Disk with dBASE III or dBASE III Plus:
copy all files except VCR.DOC onto the subdirectory which your dBASE
III executable files reside on. Then invoke dBASE III, type DO VCR,
and you're ready to roll.
Hard Disk with dBASE III Plus:
copy all files except VCR.DOC onto the subdirectory of your choice.
Then issue SET PATH TO *subdirectory-name*; then DO VCR. If you like,
you can copy all files except VCR.PRG to a subdirectory of your choice,
and put VCR.PRG on the subdirectory your dBASE III PLUS executable file
resides on. You can then add the SET PATH command to VCR.PRG and
execute DO VCR.
I suggest that you play with the system awhile to get the hang of it, using the
twenty or so records in the supplied database. When you are ready to put in
your own data, enter dbase III, zap the records, enter DO VCR, and pick "I"
from the menu. This will overwrite the old indexes with the new, empty
*** SOME NOTES ON SYSTEM PHILOSOPY
I have tried to make all screens about as self-explanatory as possible, but
because I have commented out the dBASE III color statements, you may not
realize that when one of the "ENTER CHOICE" lines comes up on the bottom of the
screens that there is a correspondence between a Capital Letter in the action
description and the letter you enter to trigger the action. With the COLOR
statements active, this ambiguity doesn't exist.
For example, when you browse the file looking for the record you wish to edit,
the "choice" line at the bottom of the screen says "Pick REC to edit", and one
of the choices is the letter "P": With the COLOR statements active, the letter
"P" in "Pick" would have been highlighted. So look closely at the choices
Fields available in the VCRFILE are: TYPE, TITLE, EPISODE, COMMENTS, SOURCE,
CATEGORY, RUNTIME_H, RUNTIME_M, and TAPENUM. EPISODE is a rather arbitrarily
named field: On data entry screens, it shows up as EPISODE for TV shows, EVENT
for sports events, and doesn't show up at all on film data entry screens. This
was entirely arbitrary on my part. I have no objections to your altering the
code to suit your needs - In fact, I welcome it.
I set up all the procedures into a single .PRG file simply for convenience sake
in preparing an ARC file for uploading. Things do go a bit faster if it isn't
put together as a SET PROCEDURE TO environment. So feel free to break up
VCRPROC.PRG into its component parts.
** FUTURE WORK I PLAN TO DO (when I find the time)
Like I said, there isn't really too much to the system, but I hope you find it
useful. I have a few more functions I would like to add to it: One is a STARS
file for the TV shows. This would be a relational table, where the TITLE entry
in the database would point to STAR records listing the series' regular actors.
For example, my thirty or so MOONLIGHTING episodes would point to two records
in the STARS database, one listing Cybil Shepard, one listing Bruce Willis.
When you browse the file, any STARS records would be listed automatically.
I will most likely add additional browse capabilities: Browsing on tape number
and on category come to mind as what I'll first add to release 1.1.
** CHANGES you may wish to make
As I said before, I don't expect the system to meet your needs as well as it
meets mine. So feel free to change the code.
1) You may notice that the COLOR statements are all commented out. This is
because the COLOR statements are written to dBASE III standards, not dBASE
III Plus standards. I figured it would be easier for you to remove the
asterisks which comment them out than to constantly blow up on SET COLOR TO
1/3,5/7 statements if you run dBASE III PLUS on a color monitor. If you
have a monochrome monitor, and you run dBASE III Plus, I suggest you use
SET COLOR TO W+ for the highlighted colors, and set color to w to reset.
2) You probably will want different category codes than I used. If so, be sure
to change the IF MCATEGORY $ statements which edit/validate the data entry
process: And you'll want to change the screens themselves to reflect your
changes. If you can come up with a better categorization scheme (and the
field is actually 3 characters long, not 1 as is shown on the screen) I'd
like to know, because I'd be willing to incorporate it.
If you wish to comment on the system, suggest improvements, or simply
complain about how BETA is dying out, write me at:
1919 Kennedy Drive, T-3
McLean VA 22102