0 GOTO1000 210 ' 213 FORI=1TOLEN(RE$):C=ASC(MID$(RE$,I,1)):IFC>96ANDC<123THENMID$(RE$,I,1)=CHR$(C-32):NEXTELSENEXT 216 RETURN 1000 SCREEN0:CLS:CALL17034:PRINTCHR$(27)"Q"CHR$(27)"q":LINE(1,3)-(238,35),1,B:PRINT@54,"DATAbee FILE"::PRINT@97,"9/8/88":PRINT@123,"Copyright 1988 by Howard H. Sprow 1003 CLEAR1200:MAXFILES=2:MX=15:DIMF$(MX+3),F0$(MX),CC(MX),FP(MX),FL(MX),P0(MX),L0(MX):R1$=CHR$(13):Q$=CHR$(34):E$=CHR$(27):ONERRORGOTO1267 1006 CALL16954:GOTO1057 1009 ' 1012 KO=0:PRINT@240,"OK to abandon operation(Y/N)?"; 1015 RE$=INKEY$:IFRE$=""THEN1015ELSEIF RE$="Y"ORRE$="y"THENKO=1ELSEKO=0 1018 PRINT@280,SPACE$(39);:RETURN 1021 ' 1024 IFPEEK(65433)=2THENRE$="CTRL" 1027 RETURN 1030 ' 1033 'EX=flag for existing file 1036 ONERRORGOTO1273:OPENFN$FORINPUTAS1:I=1 1039 LINEINPUT#1,F$(I):IFF$(I)=CHR$(255)THENF$(I)="":NF=I-1:N0=NF:GOTO1042ELSEF0$(I)=F$(I):I=I+1:GOTO1039 1042 SZ=0:FORI=1TONF:SZ=SZ+VAL(MID$(F$(I),17,2)):NEXT 1045 CLOSE1:CALL16954:PRINT@280,E$"pMODIFY |"FN$;E$"q";:CALL16949:EX=1:RETURN 1048 ' 1051 PRINT@280,SPACE$(39);:RETURN 1054 ' 1057 FORI=0TOMX+3:F$(I)="":NEXT:NF=0:CLOSE1:CALL16954:PRINT@280,E$"pCommand Line| | ";E$"q";:CALL16949 1060 GOSUB1051:PRINT@240,"CREATE/MODIFY:";:LINEINPUTFN$:I=INSTR(1,FN$,"."):IFITHENFN$=LEFT$(FN$,I-1) 1063 IFFN$=""THENMAXFILES=1:MENU 1064 RE$=FN$:GOSUB213:FN$=RE$ 1066 IFLEN(FN$)>6THEN1057ELSEGOSUB1036 1069 CLS:CALL16954:PRINT@293,E$"p"FN$E$"q";:CALL16949:PRINT@0," Field Name Type Width":PRINT" ========== ==== =====":PRINT@148,"Press ENTER":PRINT@188,"to accept":PRINT@228,"entry. 1072 P1=0 1075 FOR I=80TO200STEP40:PRINT@I,SPACE$(25);:NEXT 1078 PRINT@80,"";:FORI=0TO3:IFP1+I=0ORP1+I>MXTHENPRINTSPACE$(30);:GOTO1084 1081 PRINTUSING"## ";P1+I; 1084 PRINTF$(P1+I):NEXT:PRINT@123,E$"P"; 1087 IFPOS(I)<3THENPRINT@123,"";ELSEIFPOS(I)>20THENPRINT@140,""; 1090 RE$=INKEY$:GOSUB1024:IFRE$=""THEN1087ELSEGOSUB213 1093 IFRE$="CTRL"ANDF$(P1)<>""ANDPEEK(65147)=32THEN1159 1096 IFRE$="CTRL"THENGOSUB1123:IFOKTHENGOSUB1144:GOTO1159GOTO1159ELSE1090 1099 IFRE$=R1$THENGOSUB1123:IFOK=0THEN1090ELSEGOSUB1144:PRINTE$"Q";:P1=P1+1:IFP1>MX-1THENP1=MX-1:GOTO1075ELSE1075 1102 IFRE$=CHR$(31)THENGOSUB1123:IFOK=0THEN1090ELSEPRINTE$"Q";:P1=P1+1:IFP1>MX-1THENP1=MX-1:GOTO1075ELSE1075 1105 IFRE$=CHR$(30)THENPRINTE$"Q";:P1=P1-1:IFP1<0THENP1=0:GOTO1075ELSE1075 1108 IFASC(RE$)=28THENRE$=E$+"C" 1111 IFASC(RE$)=29THENRE$=E$+"D" 1114 IFRE$=E$THENGOSUB1012:IFKOTHEN1195ELSE1069 1117 PRINTRE$;:GOTO1087 1120 ' 1123 OK=0:IFPEEK(65147)<65OR PEEK(65147)>90THENOK=0:GOTO1135 1126 IFEX>0ANDP1+1<=N0ANDCHR$(PEEK(65158))<>MID$(F0$(P1+1),12,1)THENOK=0:GOTO1135 1129 OK=INSTR(1,"CND",CHR$(PEEK(65158))):IFOK=3THENRETURN 1132 N1=VAL(CHR$(PEEK(65163))+CHR$(PEEK(65164))):IFN1=0ORN1>78THENOK=0 1135 IFOK=0THENBEEP 1138 RETURN 1141 ' 1144 F$(P1+1)="":FORI=65147TO65164:F$(P1+1)=F$(P1+1)+CHR$(PEEK(I)):NEXT:MID$(F$(P1+1),11,1)=" ":MID$(F$(P1+1),16,1)=" " 1147 IFMID$(F$(P1+1),12,1)="C"THENMID$(F$(P1+1),12,4)="CHAR"ELSEIFMID$(F$(P1+1),12,1)="N"THENMID$(F$(P1+1),12,4)="NUMR" 1150 IFMID$(F$(P1+1),12,1)="D"THENMID$(F$(P1+1),12,14)="DATE 10" 1153 RETURN 1156 ' 1159 PRINT@240,"Press ENTER to confirm. Other, resume."; 1162 RC$=INKEY$:IFRC$=""THEN1162ELSEIFRC$=R1$THEN1165ELSEPRINT@280,SPACE$(39);:PRINT@0,E$"Q";:GOTO1075 1165 NF=0:FORI=1TOMX 1168 IFF$(I)<>""THENNF=NF+1 1171 NEXT 1174 IFEXTHEN1204ELSEPRINT@240,E$"KPlease wait...";:GOSUB1183:GOTO1195 1177 ' 1180 '#recs,rec size,date,#fields,field data,recs 1183 OPENFN$FOROUTPUTAS1 1186 FORI=1TOMX:IFF$(I)<>""ANDLEFT$(F$(I),6)<>"DELETE"THENPRINT#1,F$(I) 1189 NEXT:PRINT#1,CHR$(255):RETURN 1192 ' 1195 MAXFILES=1:MENU 1198 ' 1201 'F0$()=old F$(),FP()=newfield pos in rec,FL()=new fld length,P0=old fld pos,L0=old fld length 1204 PRINT@240,E$"K";:LINEINPUT"Output to : ";OD$::PRINT"Please wait...";:FORI=1TOMX:CC(I)=0:NEXT 1207 'create & write new file 1210 FORI=1TONF:FL(I)=VAL(MID$(F$(I),17,2)):NEXT:FP(1)=1:FORI=2TONF:FP(I)=FP(I-1)+FL(I-1):NEXT:FORI=1TON0:L0(I)=VAL(MID$(F0$(I),17,2)):NEXT:P0(1)=1:FORI=2TON0:P0(I)=P0(I-1)+L0(I-1):NEXT 1213 OPENOD$FOROUTPUTAS1:OPENFN$FORINPUTAS2:GOSUB1186:RC$="" 1216 LINEINPUT#2,LL$:IFLL$<>CHR$(255)THEN1216 1219 IFEOF(2)THEN1195ELSELINEINPUT#2,LL$:RC$="" 1222 FORI=1TONF:IFP0(I)THENFD$=MID$(LL$,P0(I),L0(I)) 1225 'delete field 1228 IFLEFT$(F$(I),6)="DELETE"THENGOTO1261 1231 'no chg to field 1234 IFFL(I)=L0(I)THENRC$=RC$+MID$(LL$,P0(I),L0(I)):GOTO1261 1237 'add field 1240 IFF0$(I)=""THENRC$=RC$+SPACE$(FL(I)):GOTO1261 1243 'fld larger 1246 IFFL(I)>L0(I)ANDMID$(F$(I),12,1)="C"THENRC$=RC$+FD$+SPACE$(FL(I)-L0(I)) 1249 IFFL(I)>L0(I)ANDMID$(F$(I),12,1)="N"THENRC$=RC$+SPACE$(FL(I)-L0(I))+FD$ 1252 'fld smaller 1255 IFFL(I) 1267 PRINT"Error"ERR"Line"ERL:FORT=1TO1200:NEXT:RESUME1069'<<<<<<< 1270 ' 1273 IFERR=52THENONERRORGOTO1267:RESUME1069ELSE1267