Id" HIS PROGRAM SORTS YOUR YLVIA ORTER'S ERSONAL INANCE ()i" TRANSACTION FILE BY DATE. T DOES SO BY CREATING A SECONDn" RELATIVE FILE ON YOUR DISK. T IS THEREFORE NECESSARY THAT YOUs" HAVE ABOUT 573 BLOCKS FREE ON YOUR TRANSACTION DISK.^x" ASICALLY, THE PROGRAMS TAKES THE TRANSACTIONS FROM YOUR TRANS.FILE,}" SORTS THEM, AND WRITES THEM OUT TO TEST.FILE, THEN SWAPS THE NAMES" OF THE TWO FILES SO THAT WILL FIND THE NEWLY SORTED FILE.3" HIS TWO-FILE METHOD IS IMPLIMENTED BECAUSE OF PERFORMANCE{" REQUIREMENTS AND TO MAKE THIS A NON-VOLATILE SORT. HAT IS, IF" SOMETHING GOES WRONG IN THE SORT (POWER OUTAGE, ETC), THE ORIGINAL" TRANS.FILE SHOULD REMAIN INTACT. FTER THIS PROGRAM RUNS, THE LAST^" GENERATION OF YOUR TRANSACTION FILE WILL ALWAYS BE NAMED TEST.FILE," SO IF YOU NEED TO RESTORE IT, YOU JUST NEED TO RENAME TEST.FILE TO" TRANS.FILE."" AVID EVOLL" 1002 .. 3RD. T. " RAND RAIRIE, EXAS 750515 " PHONE: (214) 262-3975< "C "O TM TI 365 : INITIALIZE VARIABLES & OPEN TRANS.FILE MAKEFILE  : 505 : SEE HOW MUCH SPACE IS LEFT ON THE DISK!: BF 573 4!: 565 : MAKE "TEST.FILE"E!:  : !: 710 : NOTIFY USER OF INSUFFICIENT DISK SPACE!: !: !: !: !  770 : FIND # OF RECORDS" 840 : SCAN FILEI" 955 : SORT RECORDS{" 1075 : WRITE RECORDS" 1380 : RENAME FILES"" "ONE. ECONDS ELAPSED: " ((TITM)60)"'",:"1:<#6 ***********************************************************************#; * TRAP DISK ERRORS *#@ ***********************************************************************#E:#J DS 20 $O: ": "DS$$T: $Y: #$^: )$c/$h:}$m ***********************************************************************$r * THIS SECTION INITIALIZES VARIABLES AND OPENS THE TRANS.FILE *%w ***********************************************************************%|:&%%4%(14)"":%I%TRUE(11)Y%FALSE(10)j%ZERO$"0000"z%BLKSIZE100% DATE(1000)% REC(1000)% R1$(BLKSIZE),R2$(BLKSIZE)%%: #8&: "NSERT TRANSACTION DISK IN DRIVE 8 AND PRESS ANY KEY TO CONTINUE."&&: A$?&: #8,"TRANS.FILE"N& DS 0W&#8]&:& #9,"TEST.FILE" : CHECK TO SEE IF "TEST.FILE"& DS 0 MAKEFILE TRUE :: MAKEFILE FALSE'#9 : EXISTS ON THE DISK.'':$':r' ***********************************************************************' * THE LAZY WAY TO COMPUTE BLOCKS FREE ON A DISK *( ***********************************************************************(:( %("":( 842,13: 208,1G("";BF$U(!BF(BF$)[(&a(+:g(0:(5 ***********************************************************************): * CREATE "TEST.FILE" ON THE DISK *Q)? ***********************************************************************W)D:])I)N"HE FILE "(34)"TEST.FILE"(34)" DOES NOT EXIST ON YOUR DISK.)S)X"HIS FILE IS NEEDED IN ORDER TO SORT YOUR TRANSACTIONS..*]"HIS DISK HAS SUFFICIENT STORAGE CAPACITY REMAINING FOR THIS FILE.*b"O YOU WANT ME TO CREATE THIS FILE AND CONTINUE THE SORTING PROCESS (Y/N)? ";*g A$*l*q (A$ "Y" A$ "") *v: *{: *: *+"K. HIS WILL TAKE SOME TIME, BUT IT NEED ONLY BE DONEP+"THE FIRST TIME YOU RUN THIS PROGRAM. ANG ON . . .o+ #9,"TEST.FILE",D0,U8,L72}+#9,2001+D$DS$+9+#9+ 310+:++:+:, ***********************************************************************V, * NOTIFY USER OF INSUFFICIENT DISK SPACE *, ***********************************************************************,:,,"HERE IS INSUFFICIENT DISK SPACE ON YOUR TRANSACTION DISK TO CREATEB-"THE FILES WHICH ARE NECESSARY IN ORDER TO SORT YOUR TRANSACTIONS.r-" MINIMUM OF 573 BLOCKS FREE IS REQUIRED.-"LEASE FREE UP ENOUGH DISK SPACE AND RUN THIS PROGRAM AGAIN.--:-:. ***********************************************************************c. * THIS SECTION GETS THE HIGHEST RECORD NUMBER, LOCATED IN RECORD # 1 *.  ***********************************************************************.:. #8,"TRANS.FILE".#8,1. 8,REC$.% 310/*HREC((REC$,7,4))1//LREC2/4#8"/9(/>:./C:|/H ***********************************************************************/M * THIS SECTION SCANS THE DATES OF THE RECORDS *0R ***********************************************************************0W:40\ #8,"TRANS.FILE"<0aN0c0f"# OF TRANSACTIONS: ";(HREC1)20k"CANNING TRANSACTION DATES . . .0p"URRENT TRANSACTION: "0u REC LREC HREC 20z: NN10: #8,(REC),10: #8,(REC),11: 3101: 8,REC${1: DATE(N) ((REC$,19,2)) 10000 ((REC$,15,2)) 100 ((REC$,17,2))1: REC(N) REC1: "";N1 REC1#811:1:%2 ***********************************************************************s2 * THIS SECTION SORTS THE DATES (STANDARD BUBBLE SORT) *2 ***********************************************************************2:2"ORTING TRANSACTION DATES . . .2"ASS: " 3 I 1 N"3: SWITCH FALSE93: J 1 N I]3: DATE(J) DATE(J1) u3: DATEDATE(J)3: DATE(J)DATE(J1)3: DATE(J1)DATE3: RECREC(J)3: REC(J)REC(J1)3: REC(J1)REC4 : SWITCH TRUE4: %4: J74 "";IJ4 SWITCH IP4$V4):\4.:43 ***********************************************************************48 * THIS SECTION WRITES OUT THE SORTED RECORDS TO TEST.FILE *F5= ***********************************************************************L5B:g5G #8,"TRANS.FILE":310m5L:5Q#8,1,1 :310 : TRANSFER 1ST RECORD TO NEW FILE5V#8,1,1 :3105[8,REC$ :3105` 3106e #9,"TEST.FILE":3106j#9,1,1 :31056o9,REC$ :310@6t#9,1J6y 310S6~#8Y6:s6 I 0 N BLKSIZE6: "EADING IN A BLOCK OF ";BLKSIZE;" TRANSACTIONS . . .6: "URRENT TRANSACTION: "6: #8,"TRANS.FILE":310)7: J 1 BLKSIZE : READ IN A BLOCKO7: JI N JBLKSIZE: 1255u7: ""IJ7: #8,(REC(IJ)),17: #8,(REC(IJ)),17: 8,R1$(J)7: 3107:7: TRAN$((IJ),2)08: R1$(J)(R1$(J),1)(ZERO$,4(TRAN$))TRAN$(R1$(J),6)68:S8: #8,(REC(IJ)1),1p8: #8,(REC(IJ)1),18: 8,R2$(J)8: 3108: J8: #88:8: "RITING OUT A BLOCK OF ";BLKSIZE;" TRANSACTIONS . . .9: "URRENT TRANSACTION: ",9: #9,"TEST.FILE":310g9: J 1 BLKSIZE : WRITE OUT A BLOCK9 : JI N JBLKSIZE: 13459: ""IJ9: #9,((IJ)2),19: #9,((IJ)2),19: 9,R1$(J):#: 310:(:*:-: #9,((IJ)21),1F:2: #9,((IJ)21),1Y:7: 9,R2$(J)g:<: 310r:A: J~:F: #9:K::P I:U:Z::_::d ***********************************************************************:;i * THIS SECTION RENAMES TRANS.FILE TO TEST.FILE *;n ***********************************************************************;s:;x"ENAMING FILES . . .";} "TRANS.FILE" "TRANS.TEMP"; "TEST.FILE" "TRANS.FILE"< "TRANS.TEMP" "TEST.FILE"<<:!<: