:: Takes raw score data and creates sorted score file, :: normalized 0-300. If no outfile types results to screen. :: Requires QBasic. Last mod Sept 9 2000 by Terry Newton @echo off if .%1==. echo SCORELOG file [outfile] [x] if .%1==. echo as in SCORELOG temp.out score.fil if .%1==. echo use anything as 3rd parm to look only at 1st position if .%1==. goto quit if not exist %1 echo nothing to score if not exist %1 goto quit echo Scoring log file, please wait... echo> score$.bas :on error goto donefile echo>>score$.bas dim war$(500),score(500),plays(500):maxwar=0 echo>>score$.bas open "%1" for input as #1 echo>>score$.bas L:line input #1,a$:if instr(a$, "Results:")=0 goto L echo>>score$.bas close #1:x=instr(a$," "):y=instr(x+1,a$," ") echo>>score$.bas z=instr(y+1,a$," "):q=val(mid$(a$,x,y-x)) echo>>score$.bas r=val(mid$(a$,y,z-y)):s=val(right$(a$,len(a$)-z)) echo>>score$.bas rounds=q+r+s:if rounds=0 goto done echo>>score$.bas for i=1 to 500:war$(i)="":score(i)=0:plays(i)=0:next i echo>>score$.bas open "%1" for input as #1 echo>>score$.bas floop:line input #1,a$:a$=ltrim$(rtrim$(a$)) echo>>score$.bas p=instr(a$," scores "):if p=0 goto floop echo>>score$.bas name$=left$(a$,p) echo>>score$.bas if maxwar=0 then echo>>score$.bas war$(0)=name$:j=0:maxwar=1 echo>>score$.bas else echo>>score$.bas j=maxwar:for i=0 to maxwar-1 echo>>score$.bas if name$=war$(i) then j=i:i=maxwar-1 echo>>score$.bas next i echo>>score$.bas end if echo>>score$.bas if j=maxwar then war$(maxwar)=name$:maxwar=maxwar+1 echo>>score$.bas u$=right$(a$,5):sp=instr(u$," ") echo>>score$.bas if (sp=0)=0 then u$=right$(u$,len(u$)-sp) echo>>score$.bas plays(j)=plays(j)+1:score(j)=score(j)+val(u$) if .%3==. goto lookatboth echo>>score$.bas line input #1,a$ 'skip 2nd score line :lookatboth echo>>score$.bas goto floop echo>>score$.bas donefile:close #1:resume writeresults echo>>score$.bas writeresults:on error goto done echo>>score$.bas open "score$.tmp" for output as #1 echo>>score$.bas if maxwar=0 then goto done echo>>score$.bas for i=0 to maxwar-1 echo>>score$.bas ws=int(((score(i)/plays(i))/rounds)*1000)/10+1000.01 echo>>score$.bas wscore$=str$(ws):mid$(wscore$,2,1)=" " echo>>score$.bas mid$(wscore$,8,1)=" ":print #1,wscore$,war$(i):next i echo>>score$.bas done:close #1:system qbasic /run score$.bas del score$.bas if not exist score$.tmp echo ERROR if not exist score$.tmp goto quit sort /R < score$.tmp > score$.out del score$.tmp if not .%2==. copy score$.out %2>nul if not .%2==. goto notype type score$.out|more pause :notype del score$.out :quit