0 GOTO2003 15 ' 18 PRINT@303,E$+"pRec:";:PRINTUSING"####";RN;:PRINT" of ";:PRINTUSING"####";NR;:PRINTE$+"q";:CALL16949:RETURN 21 ' 24 'to call:set LL=legnth,pt=mem pos 27 X$="":X=VARPTR(X$):A=INT(PT/256):B=PT-A*256:POKEX,LL:POKEX+1,B:POKEX+2,A:RETURN 210 ' 213 FORI=1TOLEN(RE$):C=ASC(MID$(RE$,I,1)):IFC>96ANDC<123THENMID$(RE$,I,1)=CHR$(C-32):NEXTELSENEXT 216 RETURN 231 ' 234 'f()=fields to list, etc 237 NG=0:FORI=1TOMX:F(I)=0:NEXT:GOSUB630:INPUT"Field list(1,2,3,etc)";F(1),F(2),F(3),F(4),F(5),F(6),F(7),F(8),F(9),F(10),F(11),F(12),F(13),F(14),F(15) 240 CK=0:FORI=1TOMX:CK=CK+F(I):IFF(I)<0ORF(I)>NFTHENNG=1 243 NEXT:IFCK=0THENFORI=1TONF:F(I)=I:NEXT 246 RETURN 249 ' 252 'cf=expr field#,co=condition oper,cd$=condition string,ng=flag for bad cmd 255 NG=0:CF=0:CO=0:CD$="":CX$="":GOSUB630:INPUT"Search condition(1='XX')";CX$ 258 IFCX$=""THENRETURN 261 X1=INSTR(CX$,"<>"):IFX1THENCO=4:GOTO267 264 X1=INSTR(CX$,"<"):IFX1THENCO=1ELSEX1=INSTR(CX$,"="):IFX1THENCO=2ELSEX1=INSTR(CX$,">"):IFX1THENCO=3ELSENG=1:RETURN 267 CF=VAL(LEFT$(CX$,X1-1)):IFCF<0ORCF>NFTHENNG=1 270 IFCO=4THENCD$=MID$(CX$,X1+2)ELSECD$=MID$(CX$,X1+1) 273 IFLEFT$(CD$,1)="'"ANDLEN(CD$)>1THENCD$=MID$(CD$,2) 276 IFRIGHT$(CD$,1)="'"ANDLEN(CD$)>1THENCD$=LEFT$(CD$,LEN(CD$)-1) 279 IFMID$(F$(CF),12,1)="D"THENCD$=CD$+" ":CD$=MID$(CD$,7,4)+"/"+LEFT$(CD$,5) 282 RETURN 387 ' 390 'ng=0 if cond met 393 NG=1:IFCD$=""THENNG=0:RETURNELSEIFCF=0THENNG=1:V1=RN:V2=VAL(CD$):ONCOGOTO423,426,429,432 396 TY$=MID$(F$(CF),12,1):IFTY$="C"THENS1$=MID$(RC$,FP(CF),LEN(CD$)):ONCOGOTO408,411,414,417 399 IFTY$="N"THENV1=VAL(MID$(RC$,FP(CF),FL(CF))):V2=VAL(CD$):ONCOGOTO423,426,429,432 402 IFTY$="D"THEND1$=MID$(RC$,FP(CF),FL(CF)):GOSUB441:S1$=D2$:ONCOGOTO408,411,414,417 405 'string 408 NG=(S1$CD$)+1:RETURN 417 NG=(S1$<>CD$)+1:RETURN 420 'val 423 NG=(V1V2)+1:RETURN 432 NG=(V1<>V2)+1:RETURN 435 ' 438 'D1$=date passed to sub,D2$=date reformatted 441 D2$=RIGHT$(D1$,4)+"/"+LEFT$(D1$,5):RETURN 537 ' 540 'NR=#rec,SZ=rec size,NF=#fields,F$()=field data,RC$=records,FP()=field pos in rec,FL()=field lengths 543 CLOSE1:FN$=MID$(RE$,5):IFINSTR(1,FN$,".")THENFN$=LEFT$(FN$,INSTR(1,FN$,".")-1) 546 FN$=FN$+SPACE$(6):FN$=LEFT$(FN$,6):OPENFN$FORINPUTAS1:I=1 549 LINEINPUT#1,F$(I):IFF$(I)=CHR$(255)THENF$(I)="":NF=I-1:GOTO552ELSEI=I+1:GOTO549 552 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:SZ=0:FORI=1TONF:SZ=SZ+VAL(MID$(F$(I),17,2)):NEXT 555 PT=63919:LL=220:GOSUB27:FORI=1TO220STEP11:CK$=MID$(X$,I,11):IFMID$(CK$,4,6)=FN$ANDASC(LEFT$(CK$,1))=194THENRP=ASC(MID$(CK$,2,1))+256*ASC(MID$(CK$,3,1)):I=220 558 NEXT 561 CLOSE1:OPENFN$FORINPUTAS1:OF=0 564 IFEOF(1)THEN570 567 RC$=INPUT$(1,1):OF=OF+1:IFRC$<>CHR$(255)THEN564ELSEOF=OF+2 570 CLOSE1:OPENFN$FORINPUTAS1:NR=0 573 IFEOF(1)THENCLOSE1:GOTO585ELSELINEINPUT#1,RC$ 576 IFRC$<>CHR$(255)THEN573 579 IFEOF(1)THENCLOSE1:GOTO585 582 LINEINPUT#1,RC$:NR=NR+1:PRINTE$"Q";:CALL16954:GOSUB18:GOTO579 585 CALL16954:PRINT@293,E$"p"FN$E$"q";:GOSUB18:IFNRTHENRN=1ELSERN=0 588 RETURN 629 ' 630 CLS:J=0:K=0:FORI=1TOMX:IFI=6THENJ=0:K=13ELSEIFI=11THENJ=0:K=26 633 PRINT@K+J,USING"##";I;:PRINTLEFT$(F$(I),10):J=J+40:NEXT:PRINT:LINE(0,40)-(239,40),1:RETURN 1999 ' 2003 SCREEN0:CLS:CALL17034:PRINTCHR$(27)"Q"CHR$(27)"q":LINE(1,3)-(238,35),1,B:PRINT@53,"DATAbee APPEND":PRINT@97,"9/8/88":PRINT@123,"Copyright 1988 by Howard H. Sprow 2006 PRINT@280,CHR$(27)"pCommand Line| | ";:CALL16949 2009 CLEAR1000:MAXFILES=2:MX=15:DIMF$(MX),FT$(MX),F(MX),FP(MX),FL(MX),CM$(10):R1$=CHR$(13):Q$=CHR$(34):E$=CHR$(27):ONERRORGOTO2306 2012 CALL16954:GOSUB18:PRINT@240,E$"qUSE (ENT=Menu):";:LINEINPUT"";RE$:IFRE$=""THEN2027ELSEGOSUB213:IFRE$="MENU"THEN2027ELSERE$="USE "+RE$:GOSUB543:CALL16954:GOSUB18 2015 CLS:PRINT@84,"1)COPY TO DELIMITED":PRINT@124,"2)APPEND FROM DELIMITED"; 2018 R$=INKEY$:IFR$=""THEN2018 2021 ONINSTR("12",R$)GOTO2054,2090 2024 ' 2027 MAXFILES=1:MENU 2030 ' 2033 BEEP:PRINT"Invalid input.":FORT=1TO1000:NEXT:RUN 2051 ' 2054 PRINT@240,"COPY TO :";:LINEINPUT"";OD$:IFOD$=""THEN2027ELSEOPENFN$FORINPUTAS1:OPENOD$FOROUTPUTAS2:GOSUB237:IFNGTHEN2033ELSEGOSUB255:IFNGTHEN2033 2057 PRINT"Please wait... 2060 LINEINPUT#1,RC$:IFRC$<>CHR$(255)THEN2060 2063 IFEOF(1)THEN2027ELSELINEINPUT#1,RC$:GOSUB393:IFNGTHEN2063 2066 PR$="":FORI=1TOMX:IFF(I)THENDD$=MID$(RC$,FP(F(I)),FL(F(I))):TY$=MID$(F$(F(I)),12,1)ELSE2081 2069 IFTY$="C"THENPR$=PR$+Q$+DD$+Q$+",":GOTO2081 2072 IFTY$="N"THENPR$=PR$+DD$+",":GOTO2081 2075 IFTY$="D"THENIFMID$(DD$,9,2)=" "THENDD$=LEFT$(DD$,6)+"19"+MID$(DD$,7,2) 2076 IFINSTR(1,DD$," ")THENDD$=" / / " 2078 PR$=PR$+MID$(DD$,7)+LEFT$(DD$,2)+MID$(DD$,4,2)+"," 2081 NEXT:IFRIGHT$(PR$,1)=","THENPR$=LEFT$(PR$,LEN(PR$)-1) 2084 PRINT#2,PR$:GOTO2063 2087 ' 2090 PRINT@240,"APPEND FROM :";:LINEINPUT"";OD$:IFOD$=""THEN2027ELSEOPENFN$FORAPPENDAS1:OPENOD$FORINPUTAS2:INPUT"How many decimal places";DC:PRINT"Please wait... 2093 NG=0:FORI=1TONF:IFMID$(F$(I),12,1)="N"AND(DC+1)>FL(I)THENNG=1 2096 NEXT:IFNGTHENPRINT"Decimal places exceed field size...":GOTO2033 2099 IFEOF(2)THEN2027 2102 RC$="":FORI=1TONF:TY$=MID$(F$(I),12,1) 2105 IFTY$="C"THENINPUT#2,DD$:DD$=DD$+SPACE$(FL(I)):RC$=RC$+LEFT$(DD$,FL(I)):GOTO2117 2108 IFTY$="N"THENINPUT#2,DD:GOSUB2123:DD$=SPACE$(FL(I))+DD$:RC$=RC$+RIGHT$(DD$,FL(I)):GOTO2117 2111 IFTY$="D"THENINPUT#2,DD:DD$=STR$(DD):IFLEFT$(DD$,1)=" "THENDD$=MID$(DD$,2) 2112 IFDD$="0"THENDD$=" " 2114 RC$=RC$+MID$(DD$,5,2)+"/"+RIGHT$(DD$,2)+"/"+LEFT$(DD$,4) 2117 NEXT:PRINT#1,RC$:GOTO2099 2120 'adjust incoming decimal places 2123 DD$=STR$(DD):IFDC=0THENDD$=STR$(INT(DD+.5)):GOTO2135 2126 PX=INSTR(1,DD$,"."):IFPX=0THENDD$=DD$+"."+STRING$(DC,"0"):GOTO2135 2129 IFLEN(DD$)-PXDCTHENDD$=STR$(INT(DD*(10^DC)+.5)/10^DC) 2135 RETURN 2303 ' 2306 PRINT:PRINT"Error"ERR"Line"ERL:FORT=1TO1000:NEXT:RUN