**************************** DATABASE MANAGEMENT *************************** ALL COMMERICAL RIGHTS RESERVED BY BOB RIPLEY. 8140 AMMONETTE DRIVE, RICHMOND VA. 23235, 804-272-1560 [75715,1510] THIS PROGRAM SORTS, SEARCHES, PRINTS, AND WILL PERFORM LIMITED MATH BETWEEN COLUMNS. BEFORE RUNNING THIS PROGRAM GO TO THE TEXT EDITOR AND ENTER THE HEADINGS OF THE FIELDS (COLUMNS) THAT YOU WILL BE USING. YOU ARE ALLOWED UP TO 16 COLUMNS. SEPARATE EACH COLUMN HEADING WITH A COMMA. THE PRINTED WIDTH OF EACH FIELD IS DETERMINED BY THE FIRST LINE OF THE FILE (THE HEADING). SPACES MAY BE ADDED AFTER THE FIELD HEADING TO PROVIDE EXTRA SPACE FOR DATA. EX 'NAME '. IF DATA IN A COLUMN IS LONGER THAN THE COLUMN THE EXTRA DATA WILL BE PRINTED IN THE NEXT LINE AND IN THE CORRECT COLUMN AREA THE HEADING IS NOT SORTED, AND WILL ALWAYS BE THE FIRST LINE. THE FILE SHOULD BE EDITED AND CREATED FROM THE TEXT PROCESSOR. AN EXAMPLE FILE IS SHOWN BELOW: NAME ,ADDRESS ,TELE # BOB,HOME,555-1212 FRED,THERE,555-2121 NO BLANK LINES ARE ALLOWED WITHIN THE FILE AND EACH LINE MUST CONTAIN THE SAME NUMBER OF FIELDS AS THE HEADING. AFTER ENTERING THE HEADING ADDITIONAL DATA MAY BE ENTERED FROM THE TEXT EDITOR, HOWEVER IT IS EASIER AND MORE ACCURATE TO ENTER IT FROM WITHIN THE PROGRAM DATA MAY BE LONGER THAN THE HEADING AND STILL BE PROPERLY PRINTED ON THE NEXT LINE DURING FORMATTED PRINTING NOW RUN THE PROGRAM INPUT QUESTION "STRING SPACE RESERVED FOR SOURCE FILE" THIS WILL RESERVE STRING SPACE FOR THE STRING ARRAY A(C,CC). PRESS ENTER FOR DEFAULT. IF YOU INTEND TO ENTER DATA AND THEN SAVE IT TO THE TEXT FILE IT IS BEST TO RESERVE LESS SPACE THAN THE DEFAULT AND MORE AT THE NEXT QUESTION. INPUT QUESTION "HOW MUCH FOR TEXT FILE (DEFAULT 1000)" PRESS ENTER FOR DEFAULT ADD MORE IF LESS WAS RESERVED ABOVE. INPUT QUESTION "ENTER SOURCE FILENAME" ENTER THE NAME OF THE FILE. IT MAY BE A RAM FILE, CASSETTE FILE (CAS:TEST.DO), OR COM FILE (COM:88N1E). BEFORE PRESSING ENTER START THE CASSETTE RECORDER IF CAS: FILE. DATA WILL NEXT BE DISPLAYED INDICATING FIELD LENGTHS. THE RECORDER WILL STOP FOR A WHILE AND THEN THE REST OF THE DATA WILL BE ENTERED. ******************************** PRINT MENU ********************************** THIS IS THE MAIN MENU OF THE PROGRAM (THERE ARE TWO OTHERS) THE FIRST LINE INDICATES THE NUMBER OF RECORDS AT PRESENT, THE NUMBER OF FIELDS, AND THE MAXIMUM NUMBER OF RECORDS THAT THE ARRAY A(C,CC) IS DIMENSIONED FOR. THE SECOND LINE SHOWS THE SOURCE FILE - THE FILE DATA ORIGINALLY WAS TAKEN FROM AND THE FILE NAME THAT WILL BE PRINTED AT THE TOP OF EACH PAGE DURING FORMATTED PRINTING THIS SECOND LINE ALSO SHOWS THE PRINT FILE. THIS IS WERE DATA WILL BE SENT DURING FORMATTED AND UNFORMATTED PRINTING. THE THIRD LINE SHOWS THE HEADING WHICH CAN BE ENTERED BY GOING TO ITEM 4. 1) SORT - CAN SORT BY ANY COLUMN EITHER NUMERICALLY OR ALPHABETICALLY. IF A NUMERICAL SORT IS DONE AND ALPHA DATA IS ENCOUNTERED THIS DATA WILL BE GIVEN A VALUE OF ZERO. 2) SEARCH - ALLOWS SEARCHES ON UP TO 11 ITEMS IN THE SAME OR DIFFERENT COLUMNS ALSO ALLOWS 'OR' OR 'AND' SELECTION. IF 'OR' IS SELECTED THEN A RECORD PRINTING WILL OCCUR IF ANY ITEM WITHIN A FIELD IS ENCOUNTERED. IF 'AND' IS SELECTED THEN ALL ITEMS MUST BE ENCOUNTERED WITHIN A RECORD FOR IT TO BE PRINTED. 3) FORMATTED PRINTING - DATA WILL BE SENT TO PRINT FILE (P$) COLUMNS WILL BE LINED UP AND MATH WILL BE PERFORMED IF ENABLED. IT IS BEST TO NOT USE THIS TO SEND DATA TO RAM FILES OR CASSETTE BECAUSE A LOT OF MEMORY WILL BE USED. PRINT USING IS USED DURING THIS TO CREATE EVENLY SPACED COLUMNS. 4) STATUS - THIS SELECTS ANOTHER MENU. SEE EXPLANATION BELOW. ***********************************STATUS MENU ************************** 1) TITLE, PRT? -ALLOWS ENTERING TITLE TO BE PRINTED AT TOP OF EACH PAGE AND TO SELECT IF A TITLE WITH TIME, DATE, HEADING, ETC WILL BE PRINTED. 2) LINES SKIPPED - SELECT NUMBER OF LINES TO BE SKIPPED BETWEEN RECORDS 3) SINGLE FIELD/LINE - ALLOWS EACH FIELD TO BE PRINTED ON A SEPARATE LINE. 4) LINES/PAGE - SELECT NUMBER OF LINES PER PAGE. SET DEFAULT NEAR BEGINNING OF PROGRAM. NORMALLY 66. 5) CHANGE FILE NAMES - ALLOWS CHANGING OF SOURCE AND DESTINATION FILES. 6) # OF COPIES - SELECT NUMBER OF COPIES TO BE PRINTED DURING FORMATTED PRINTING. 7) FREE MEMORY AND FIELD SIZE - GIVE FREE VARIABLE SPACE, FREE STRING SPACE, AND LENGTH OF EACH FIELD. 8) ADRS. LABELS - SETS UP APPROPRIATE STATUS TO ALLOW PRINTING OF ONE COLUMN. OF ADDRESSES ON 3 3/4 BY 7/8 ADDRESS LABELS. 9) PRINT MENU - RETURN TO PRINT MENU *************************** RETURN TO PRINT MENU DESCRIPTIONS ************** 5 100 MENU - GOES TO MODEL 100 MENU. YOU WILL LOOSE ALL DATA IN THE ARRAY. BE CAREFUL. 6) PRT FILE CHANGE - ANOTHER MENU. SEE FOLLOWING DESCRIPTIONS. ****************************** PRINT FILE CHANGE MENU ********************* 1) LCD: - PRINT FILE BECOMES LCD: THEN RETURN TO 'PRINT MENU' 2) PRT: - SAME BUT PRT: 3) PRINT FILE BECOMES FILE NAME THAT YOU SEE. THIS IS THE DESTINATION FILE AND ORIGINALLY CAME FROM THE SOURCE FILE UNLESS CHANGED IN ITEM 5 BELOW. 4) COM:88N1E - DATA TO COM:88N1E AND RETURN . 5) DEST. FILE - ALLOWS YOU TO CHANGE THE DESTINATION FILE AND SET PRINT FILE AS DESTINATION FILE. 6) FIELD SEPARATOR - NORMALLY A SPACE IS PLACED BETWEEN EACH FIELD DURING FORMATTED PRINTED. YOU MAY CHANGE IT TO ANY CHARACTER. 7) FIELDS PRINTED - USED ON FORMATTED PRINTING ONLY. YOU MAY SELECT TO PRINT ONLY CERTAIN FIELDS. 8) PRINTER SETUP - ALLOWS YOU TO SEND CODES TO YOUR PRINTER. CURRENTLY SETUP FOR MICROLINE 83A PRINTER. REWRITE LINES 8500- FOR YOUR PRINTER. ********************** RETURING TO PRINT MENU DESCRIPTIONS ****************** 7) MATH ENABLED - ALLOWS CALCULATION BETWEEN COLUMNS. THIS SECTION ALLOWS YOU TO SETUP A SIMPLE EQUATION OF ONE OPERATOR BETWEEN EACH COLUMN +,-,*,/. THE EQUATION CONSIST OF : INTIAL CONSTANT, COL ZERO OPERATOR, COL ZERO VALUE, COL ONE OPERATOR, COL ONE VALUE, ETC. TRY ENTERING SOME OPERATORS AND OBSERVE THE RESULTS DURING FORMATTED PRINTING AT THE END OF THE PRINTING THE OPERATORS WILL BE PRINTED AFTER THE TOTALS. IF YOU RE-ENTER THIS AFTER IT HAS BEEN UNABLED IT WILL SIMPLE DISABLE AND RETURN TO PRINT MENU. 8) ENTER DATA - ENTER MORE DATA TO ARRAY. YOU WILL BE PROMPTED WITH THE HEADING OF EACH COLUMN AND THE PREVIOUS RECORD. IF THERE IS NO CHANGE IN THAT FIELD FROM THE PREVIOUS ENTRY THEN PRESS ENTER AFTER THE END IT IS BEST TO SAVE THE DATA AS INDICATED BY THE PROMPT. IF THE FILE IS A CAS: FILE BE SURE TO START THE RECORDER BEFORE PRESSING ENTER. IF YOU SHOULD RUN OUT OF MEMORY YOU CAN SAVE THE FILE TO CAS: AND THEN RESTART THE PROGRAM. 9) UNFORMATTED PRINT - USE THIS WHEN SENDING DATA TO COM:,RAM:, OR CAS: IF YOU WANT TO MINIMIZE STORAGE SPACE. THIS IS A SIMPLE DATA TRANSFER AND IS NOT AFFECTED BY MATH ENABLE, AND ALL COLUMNS ARE PRINTED. IT ALSO FASTER THAN THE FORMATTED PRINTING. THIS SECTION WILL ALSO WORK ON THE PRINTER AND LCD BUT DATA IS NOT FORMATTED NEATLY. ******************************** END OF PRINT MENU ************************* ******************************* VARIABLE LIST ******************************** DEFINT C,I,J,K,L,M,N,Q,S:DEFSTR A,B,Y,N DIM JJ(15)'WIDTH OF FIELDS 0 TO 15 ZS=FRE("") STRING MEMORY SS=LINES SKIPPED -1 BETWEEN RECORDS PD=66 LINES/PAGE P$="LCD:" DEFAULT PRINT FILE DL$=" "FIELD SEPARATOR. DURING PRINTING A SPACE WILL SEPARATE EACH FIELD. THIS CAN BE CHANGED BY USING ITEM 4) STATUS UNDER PRINT MENU WW=1 #OF COPIES PRINTED DURING FORMATTED PRINTING Z4=FRE(0) C=MAX # OF RECORDS CC = NUMBER OF FIELDS -1 Q(C)= POINTER FOR SORT AND PRINTING A(C,CC)=DATA ARRAY G$(CC)= PRINT USING DATA PP$(CC)= SET = 'Y' IF COLUMN IS PRINTED Y="Y":N="N" T$=N'TOTAL TOGGLE - WILL ADD IF 'Y' SV$=N'SINGLE FIELD/LINE HS$=Y'HEADING PRINTED LB$=N'LABELS TOGGLE TM$(CC)'MATH OPERATOR ARRAY T(CC)' COLUMN TOTAL VARIABLES ************** FOLLOWS IS A LIST OF MAIN ROUTINES AND LINE NUMBERS ********* 1000 PRINT MENU 1300 ADD SECTION SETUP 1800 ERROR HANDLING ROUTINE 2000 SORT SECTION SETUP 3000 SORT ROUTINE 3600 SEARCH AND PRINT 3800 FORMATTED PRINTING SETUP 3810 PRINT HEADING AT EACH PAGE 4000 PRINT DATA 4020 PRINT RECORD 4270 PRINT RESULTS OF COLUMN ADDITION 4400 MATH SECTION 4500 UNFORMATTED PRINTING OF DATA TO FILE 5000 GET DATA IN ARRAY FROM SOURCE FILE AT START OF PROGRAM 5800 COUNT # OF FIELDS IN HEADING PRIOR TO GETTING DATA 5900 ENTER FILE NAMES 5930 STATUS CHANGE 5950 OPEN FILES - ONLY ONE OPEN ALLOWED AT A TIME 6000 CHANGE PRINT FILE NAME 6930 PRINT ADDRESS LABELS 8000 ENTER DATA 8500 MICROLINE 83A PRINTER SETUP