0 'MONEY.BA' WILLIAM B NEMUTH [72527,2631] - SORT & FIND ROUTINES DERIVED FROM MASTER.BA WITH THANKS 6 CLEAR1000:RV$=CHR$(27)+"p":NV$=CHR$(27)+"q":QQ$=STRING$(40,113):DA$=STRING$(96,45):ONERRORGOTO382:CLS:PRINTRV$" *** MONEY$.BA MAIN MENU *** "NV$:PRINT:PRINT@80," <1> Enter data":PRINT@100," <4> Total data" 12 PRINT" <2> Sort data":PRINT@140," <5> Print report":PRINT" <3> Search data":PRINT@180," <6> Quit to menu":PRINTQQ$:PRINT@240," Make selection....." 16 I$=INKEY$:IFI$=""THEN16 18 ONVAL(I$)GOTO50,200,250,300,350,22:GOTO16 22 MENU 50 PRINT:FILES:INPUT"Which account file...";F$:IFF$="Q"ORF$="q"ORF$=""THEN6 52 CLS:PRINT@9,RV$" DATA ENTRY MODE "NV$:PRINT 56 INPUT"Enter day (e.g.09)...";D$:IFD$=""THEND$=MID$(DATE$,4,2) 58 IFLEN(D$)<>2THENGOSUB114:GOTO56 60 INPUT"Enter month(e.g.05)..";M$:IFM$=""THENM$=LEFT$(DATE$,2) 62 IFLEN(M$)<>2THENGOSUB114:GOTO60 64 INPUT"Enter year(e.g.86)...";Y$:IFY$=""THENY$=RIGHT$(DATE$,2) 66 IFLEN(Y$)<>2THENGOSUB114:GOTO64 68 INPUT"Enter cost cat. #....";C$:IFC$=""THENC$="-" 70 IFLEN(C$)>5THENGOSUB114:GOTO68 72 I$="":INPUT"Enter Invoice #......";I$:IFI$=""THENI$="-" 76 IFLEN(I$)>6THENGOSUB114:GOTO72 78 INPUT"Cash or Cheque #.....";H$:IFH$=""THENH$="-" 80 IFLEN(H$)>6THENGOSUB114:GOTO78 82 INPUT"Notes (max 30 ch)....";N$:IFN$=""THENN$="-" 84 IFLEN(N$)>30THENGOSUB114:GOTO82 86 INPUT"Enter amount........$";A:CLS:PRINT"Account : "F$:PRINT"Date : "D$"/"M$"/"Y$:PRINT"Category : "C$:PRINT"Invoice : "I$" Cash/Cheq : "H$:PRINT"Notes : "N$:PRINTUSING"Amount : $$########.##";A:PRINT"All correct Y/N..." 100 Q$=INKEY$:IFQ$=""THEN100 102 IFQ$="Y"ORQ$="y"THEN104ELSEIFQ$="N"ORQ$="n"THEN50ELSEBEEP:GOTO100 104 CLS:PRINT@173,"FILING DATA":OPENF$FORAPPENDAS1:PRINT#1,Y$M$D$","C$","I$","H$","N$","A:CLOSE1:CLS:PRINT@169,"Enter more data ? Y/N" 110 Q$=INKEY$:IFQ$=""THEN110 112 IFQ$="Y"ORQ$="y"THEN52ELSEIFQ$="N"ORQ$="n"THEN6ELSEBEEP:GOTO110 114 CLS:BEEP:PRINT@165,"INPUT TOO LONG ! TRY AGAIN...":FORZZ=1TO500:NEXTZZ:CLS:RETURN 200 CLS:PRINT@10,RV$" DATA SORTING MENU "NV$:PRINT:FILES:MAXFILES=1:INPUT"Select input file...";F$:IFF$="Q"ORF$="q"ORF$=""THEN6ELSEIFRIGHT$(F$,3)=".DO"THEN206ELSEF$=F$+".DO":ONERRORGOTO382 206 OPENF$FORINPUTAS1 208 LINEINPUT#1,Q$:X=X+1:IFNOTEOF(1)THEN208 210 CLOSE:DIMA$(X):X=0:OPENF$FORINPUTAS1 212 X=X+1:LINEINPUT#1,A$(X):IFNOTEOF(1)THEN212 214 PRINTX;"records":CLOSE:W=2^INT(LOG(X))-1 216 FORI=1TOX-W:FORV=ITO1STEP-W:IFA$(V)<=A$(V+W)THEN220 218 Q$=A$(V):A$(V)=A$(V+W):A$(V+W)=Q$:NEXT 220 NEXTI:W=INT(W/2):IFW>0THEN216 222 KILLF$:OPENF$FOROUTPUTAS1:FORY=1TOX:PRINT#1,A$(Y):NEXT:CLOSE:GOTO6 250 MAXFILES=2 252 CLS:PRINT@9,RV$" DATA SEARCHING MENU "NV$:PRINT:FILES:INPUT"Select input file:";F$:IFF$="Q"ORF$="q"ORF$=""THEN6ELSEINPUT"Select output file:";FF$:IFFF$=""THENBEEP:GOTO252ELSECLS 256 PRINT:INPUT"Search for: ";SS$:OPENF$FORINPUTAS1:OPENFF$FOROUTPUTAS2 260 IFEOF(1)THENCLS:CLOSE:CLS:PRINT@166,"Results of search":PRINT@206,"filed in "FF$:FORZZ=1TO700:NEXTZZ:GOTO6 262 LINEINPUT#1,A$:IFINSTR(A$,SS$)THEN266ELSE260 266 PRINT#2,A$:GOTO260 300 CLS:PRINT@7,RV$" DATA TOTALING MENU "NV$:PRINT:FILES:INPUT"Select Account file...";F$:IFF$="Q"ORF$="q"ORF$=""THEN6ELSE304 304 OPENF$FORINPUTAS1 306 IFEOF(1)GOTO324ELSE308 308 INPUT#1,DD$:INPUT#1,C$:INPUT#1,I$:INPUT#1,H$:INPUT#1,N$:INPUT#1,A:CLS:PRINT"Account : "F$" Date : "RIGHT$(DD$,2)"/"MID$(DD$,3,2)"/"LEFT$(DD$,2) 312 PRINT"Catagory: "C$:PRINT"Invoice : "I$" Cash/cheque : "H$:PRINT"Notes : "N$:PRINTUSING"Amount :$$########.##";A:T=T+A:PRINTUSING"Total :$$########.##";T:PRINTQQ$;:PRINT"Press ext or uit..."; 318 XC$=INKEY$:IFXC$=""THEN318 320 IFXC$="N"ORXC$="n"THEN306ELSEIFXC$="Q"ORXC$="q"THENCLOSE1:GOTO6 322 BEEP:GOTO318 324 CLOSE1:PRINT@277,RV$:INPUT" End of file...Press ...";X:PRINTNV$:GOTO6 350 CLS:IF(INP(187)AND6)=2THEN354ELSE396 354 LPRINTCHR$(27);CHR$(69);CHR$(27);CHR$(77):CLS:PRINT@7,RV$" REPORT PRINT MENU "NV$:PRINT:FILES:INPUT"Select account file...";F$:IFF$="Q"ORF$="q"THEN6ELSE358 358 OPENF$FORINPUTAS1:CLS:PRINT@171,"Printing report":LPRINT"Report on "F$" account.....";TAB(74)"Report dated "MID$(DATE$,4,2)"/"LEFT$(DATE$,2)"/"RIGHT$(DATE$,2):LPRINT:LPRINTDA$ 364 LPRINT"Date";TAB(10)"Catgy #";TAB(18)"Invoice ";TAB(28)"Cheque";TAB(36)"Notes";TAB(75)"Amount";TAB(88)"Total":LPRINTDA$ 368 IFEOF(1)GOTO376ELSENE=NE+1:GOTO370 370 INPUT#1,DD$:INPUT#1,C$:INPUT#1,I$:INPUT#1,H$:INPUT#1,N$:INPUT#1,A:T=T+A:LPRINTRIGHT$(DD$,2)"/"MID$(DD$,3,2)"/"LEFT$(DD$,2);TAB(10)C$;TAB(18)I$;TAB(28)H$;TAB(36)N$;TAB(69)USING"$$########.##";A;T:LPRINT:GOTO368 376 LPRINTDA$:LPRINT"Total number of entries = "NE;TAB(68)"Total amount =";TAB(75)USING"$$########.##";T:LPRINTDA$:CLOSE1:LPRINTCHR$(27);CHR$(80);CHR$(27)+"F";CHR$(12):GOTO6 382 CLOSE:CLS:BEEP:BEEP:BEEP:IFERR=54THEN388ELSEIFERR=55THEN390ELSEIFERR=52THEN398ELSEIFERR=64THEN392ELSEIFERR=>59ORERR=<67THEN394ELSE386 386 PRINT@93,"B U M M E R !":PRINT@127,"You did something weird !":GOTO400 388 PRINT@88,"But that file is empty !":GOTO400 390 PRINT@88,"You gave a bad file name !":GOTO400 392 PRINT@93,"Disk is full":GOTO400 394 PRINT@89,"Disk drive problems !":GOTO400 396 CLS:BEEP:BEEP:BEEP:PRINT@90,"Printer not ready !":GOTO400 398 PRINT@87,F$" does not exist":GOTO400 400 PRINT@170,"Check & try again":FORVV=1TO1000:NEXTVV:GOTO6