5 REM WRITTEN BY SCOTT SUTCLIFFE IN MICROSOFT BASIC. 8 REM GENERATES DBASE .CMD FILES 10 REM Initilization 20 DIM PIC$(2):PIC$(1)="PICTURE '999-99-9999'":PIC$(2)="PICTURE '99/99/99'" 30 DIM LPIC$(110):HOME$=CHR$(26):ESC$=CHR$(27):HME$=CHR$(30):LP%=4:DIM F$(110) 40 DIM F2$(110), OF1$(110) 50 UP$=CHR$(11)+CHR$(11):REM THIS IS THE CHAR THAT DEFINES CURSOR UP 53 REM CHANGE THIS TO WHATEVER YOUR TERMINAL USES FOR IT. CURRENTLY 54 REM SET UP FOR TELEVIDEO. 55 EDT$="'HIT E TO EDIT, P FOR PREVIOUS, F FOR FORWARD OR Y TO STOP';" 60 EDT2$=" GET DONE PICTURE 'X'" 70 PRINT HOME$ 80 PRINT "CMDGEN 1.0" 90 PRINT "DBASE COMMAND FILE GENERATOR" 100 PRINT "WRITTEN 07/12/84" 110 INPUT "FILENAME ";CMDNAME$ 120 INPUT "IS THE USE FILENAME DIFFERENT FROM THE COMMAND FILE NAME (Y/N)";SW$:PRINT UP$:PRINT SPACE$(70):PRINT UP$ 130 IF LEFT$(SW$,1)="Y" OR LEFT$(SW$,1)="y" THEN INPUT "FILENAME ";FILENAME$ 140 IF FILENAME$="" THEN FILENAME$=CMDNAME$ 150 IF LEFT$(SW$,1)="Y" OR LEFT$(SW$,1)="y" THEN PRINT UP$ 160 CMDNAME$=CMDNAME$+".CMD": REM CHANGE TO .CMD TO .PRG FOR CP/M-86 OR MS-DOS 170 PRINT UP$:PRINT "Filename = "+CMDNAME$+" Database Name = "+FILENAME$ 180 GOSUB 700 190 PRINT " ":PRINT UP$ 200 LP%=LP%+1:PRINT "Field #";LP%-4;" Name ";:INPUT OF$ 210 IF LP%-4 = 1 THEN FFILE$=OF$ 220 OF1$(LP%-4)=OF$ 230 IF OF$="" OR OF$="DONE" THEN GOTO 370 240 F2$(LP%-4)=OF$ 250 IF OF$="NAME" THEN NME%=-1: GOTO 200 260 IF OF$="SSN" OR OF$="SS:NO" THEN LPIC$(LP%-4)=PIC$(1):GOTO 200 270 IF OF$="HIRE" OR OF$="BIRTH" OR OF$="TERM" OR OF$="ENTRY" THEN LPIC$(LP%-4)=PIC$(2): GOTO 200 280 IF LEN(LPIC$(LP%-4))=0 THEN INPUT "Picture (Y/N) ";SW$ 290 IF SW$<>"Y" AND SW$<>"y" THEN GOTO 340 300 LPIC$(LP%-4)="PICTURE '" 310 PRINT UP$ 320 LINE INPUT "Enter in Picture (ie 999-9999)", TPIC$ 330 LPIC$(LP%-4)=LPIC$(LP%-4)+TPIC$+"'" 340 PRINT UP$: PRINT SPACE$(70):PRINT UP$ 350 SW$="N" 360 GOTO 200 370 PRINT HOME$ 375 FOR L%=1 TO LP%-1 380 F$(L%)="@ "+STR$(L%+ABS(NME%))+",0 SAY ":F$(L%)=F$(L%)+"'"+OF1$(L%)+"'" 385 NEXT L% 390 FOR L%=1 TO LP%-1 400 NEXT L%: REM - INITILIZE ARRAY WITH @ SAY'S 410 REM NME% IS FIRST FIELD AND A BOOLEAN VARIABLE (-1) SO USES ABS FUNCTION 420 PRINT "Printing Fields..." 430 FOR L%=1 TO LP%-5 440 PRINT F$(L%)+" "+"GET "+F2$(L%)+" "+LPIC$(L%) 450 NEXT L% 460 INPUT "Enter field number to change or anything else to continue";EF$ 470 EF%=VAL(EF$):IF EF%=0 OR EF%>L% THEN GOTO 580 480 IF NOT NME% THEN EF%=EF%+1 490 PRINT "Current name is "+F$(EF%-1)+" - NEW NAME"; 500 INPUT OF$: IF OF$="" THEN GOTO 510 ELSE F$(EF%-1)="@ "+STR$(L%+ABS(NME%))+",0 SAY ": F$(EF%-1)=F$(EF%-1)+"'"+OF$+"'":F2$(EF%-1)=OF$: OF1$(EF%-1)=OF$ 510 PRINT "Current Picture is "+LPIC$(EF%-1) 520 IF LEN(LPIC$(EF%-1))<2 THEN INPUT "Picture (Y/N)";SW$ 530 IF LEN(LPIC$(EF%-1))<2 THEN IF SW$<>"Y" AND SW$<>"y" THEN GOTO 370 540 LINE INPUT "Enter in Picture ";TPIC$:SW$="Y" 550 IF TPIC$="" THEN GOTO 370 560 IF SW$="Y" OR SW$="y" THEN LPIC$(EF%-1)="PICTURE '"+TPIC$+"'": GOTO 370 570 GOTO 370 580 PRINT HOME$ 590 PRINT "What type of exit procedure do you want." 600 PRINT "1. FIRST FIELD IS A CODE FIELD - IE SPACES OR ZEROS..." 610 PRINT "2. MEMORY VARIABLE AT END AFTER ALL THE FIELDS ARE ENTERED AND READ..." 620 PRINT "3. MEMORY VARIABLE AT END OF RECORDS BEFORE THEY ARE READ IN..." 630 INPUT "WHICH ONE DO YOU WANT";SW% 640 IF SW%<1 OR SW%>3 THEN PRINT UP$: GOTO 630 645 IF SW%=1 THEN INPUT "AUTO PACK AT EXIT? (Y/N)";AP$ 650 IF SW%=1 AND FFILE$<>"SSN" AND FFILE$<>"NAME" THEN INPUT "NUMERIC FIELD";NF$ 660 PRINT HOME$ 670 PRINT "Creating "+CMDNAME$ 680 OPEN "O",#1,CMDNAME$+".CMD" 690 GOTO 710 700 PRINT HME$:FOR L%=1 TO LP%:PRINT:NEXT L%: RETURN 710 PRINT #1,"* "+CMDNAME$ 720 PRINT #1,"SET TALK OFF" 730 PRINT #1,"USE "+FILENAME$ 740 PRINT #1,"STORE ' ' TO DONE" 750 PRINT #1,"STORE 0 TO ERA" 760 PRINT #1,"ERASE" 770 PRINT #1,"APPEND BLANK" 780 PRINT #1,"DO WHILE DONE # 'Y' 790 PRINT #1," STORE ' ' TO DONE" 800 PRINT #1," STORE ERA+1 TO ERA" 810 PRINT #1," IF ERA>6" 820 PRINT #1," ERASE" 830 PRINT #1," STORE 0 TO ERA" 840 PRINT #1," ENDIF" 850 IF NME% THEN PRINT #1, " SKIP -1" 860 IF NME% THEN PRINT #1, " @ 1,0 SAY 'Last Name = '+NAME 870 IF NME% THEN PRINT #1, " SKIP":NME%=1 880 FOR L%=1 TO LP%-5 890 PRINT #1," "+F$(L%)+" GET "+F2$(L%)+" "+LPIC$(L%) 900 NEXT L% 910 IF SW%<3 THEN PRINT #1," READ" 920 IF SW%=3 THEN PRINT #1," @ "+STR$(LP%-3)+",0 SAY "+EDT$:PRINT #1,EDT2$ 930 IF SW%=3 THEN PRINT #1," READ" 940 IF SW%=2 THEN PRINT #1," @ "+STR$(LP%-3)+",0 SAY "+EDT$:PRINT #1,EDT2$ 950 IF SW%=2 THEN PRINT #1," READ" 960 IF SW%=1 AND LPIC$(1)=PIC$(1) THEN PRINT #1," IF "+FFILE$+" = 000-00-0000" 970 IF LEFT$(NF$,1)="Y" OR LEFT$(NF$,1)="y" THEN NF%=-1 ELSE NF%=0 980 IF SW%=1 AND LPIC$(1)=PIC$(1) THEN PRINT #1," STORE 'Y' TO DONE" 990 IF SW%=1 AND LPIC$(1)=PIC$(1) THEN PRINT #1," ENDIF" 1000 IF SW%=1 AND LPIC$(1)=PIC$(1) THEN GOTO 1110 1010 IF NF% THEN GOTO 1050 1020 IF SW%=1 AND LPIC$(1)<>PIC$(2) THEN PRINT #1," IF "+FFILE$+"=' '" 1030 IF SW%=1 AND LPIC$(1)<>PIC$(2) THEN PRINT #1," STORE 'Y' TO DONE" 1040 IF SW%=1 AND LPIC$(1)<>PIC$(2) THEN PRINT #1," ENDIF":GOTO 1110 1050 IF SW%=1 AND LPIC$(1)<>PIC$(2) THEN PRINT #1," IF "+FFILE$+"=0" 1060 IF SW%=1 AND LPIC$(1)<>PIC$(2) THEN PRINT #1," STORE 'Y' TO DONE" 1070 IF SW%=1 AND LPIC$(1)<>PIC$(2) THEN PRINT #1," ENDIF":GOTO 1110 1080 IF SW%=1 THEN PRINT #1," IF "+FFILE$+"=00/00/00" 1090 IF SW%=1 THEN PRINT #1," STORE 'Y' TO DONE" 1100 IF SW%=1 THEN PRINT #1," ENDIF" 1110 IF SW%=1 THEN GOTO 1260 1115 PRINT #1," STORE !(DONE) TO DONE" 1120 PRINT #1," DO CASE" 1130 PRINT #1," CASE DONE='Y'" 1140 PRINT #1," ERASE" 1150 PRINT #1," LOOP" 1160 PRINT #1," CASE DONE='E'" 1170 PRINT #1," LOOP" 1180 PRINT #1," CASE DONE='P'" 1190 PRINT #1," SKIP -1" 1200 PRINT #1," LOOP" 1210 PRINT #1," CASE DONE='F'" 1220 PRINT #1," SKIP" 1230 PRINT #1," LOOP" 1240 PRINT #1," ENDCASE 1250 PRINT #1," @ "+STR$(LP%-3)+",0 SAY '"+SPACE$(70)+"'" 1260 PRINT #1," IF DONE#'Y'" 1270 PRINT #1," APPEND BLANK" 1280 PRINT #1," ENDIF" 1290 PRINT #1,"ENDDO" 1300 PRINT #1,"SET TALK ON" 1310 IF SW%=1 THEN PRINT #1,"DELETE" 1320 IF LEFT$(AP$,1)="Y" OR LEFT$(AP$,1)="y" THEN PRINT #1,"PACK" 1330 CLOSE 1 1340 END