:
cmd$=@cmd$:progpath$=@dir$:inpath$="":outpath$=""
ON ERROR:PROC_Err:PROCEnd
IFINSTR(cmd$,"-?"):PRINT"Syntax: MRtoEARS (<inpath>)":PROCEnd:END
IFcmd$<>"":inpath$=cmd$:outpath$=inpath$
in%=OPENIN(inpath$+"MRtoEARS.ini"):IFin%=0:in%=OPENIN(progpath$+"MRtoEARS.ini")
IF in% THEN
REPEAT
A$=GET$#in%
IFLEFT$(FNuc(A$),7)="INPATH=":inpath$=MID$(A$,8):outpath$=inpath$
IFLEFT$(FNuc(A$),8)="OUTPATH=":outpath$=MID$(A$,9)
IFLEFT$(FNuc(A$),8)="PROGPATH=":progpath$=MID$(A$,9)
UNTILEOF#in%:CLOSE#in%:in%=0
ENDIF
:
list%=OPENIN(inpath$+"FileList.txt"):IF list%=0:PRINT"Cannot find file 'FileList.txt'":PROCEnd
crlf$=CHR$13+CHR$10:temp$="temp.tmp":ext$="txt"
out%=OPENOUT(outpath$+"VOTED."+ext$):IF out%=0 PRINT"Cannot open file 'VOTED.";ext$"' for output, skipping file":PROCEnd
pd$=""
REPEAT
PROCProcess(GET$#list%)
UNTILEOF#list%
PROCCloseAll
PROCEnd
END
:
DEF PROC_Err
IF ERR=17 PRINT'"Program terminated by user." ELSE PRINT 'REPORT$" at line ";ERL
PROCCloseAll
ENDPROC
:
DEFPROCCloseAll
in%=in% :IF in% :A%=in% :in%=0 :CLOSE#A%
out%=out% :IF out% :A%=out% :out%=0 :CLOSE#A%
list%=list% :IF list% :A%=list% :list%=0 :CLOSE#A%
ENDPROC
:
DEFPROCEnd
PROCCloseAll
PRINT"Press the SPACE BAR to exit.";
REPEAT UNTIL INKEY(0)=-1:IF GET
QUIT
ENDPROC
:
DEF PROCProcess(in$)
IFin$="":ENDPROC
in% =OPENIN(inpath$+in$):IF in%=0 PRINT"Cannot open file '";in$"', skipping file":ENDPROC
CLOSE#in%:in%=0
PRINT CHR$13;"Converting ";in$"...";
OSCLI progpath$+"pdftotext "+inpath$+in$+" "+outpath$+temp$
in% =OPENIN(outpath$+temp$):IF in%=0 PRINT"Cannot open temporary file '";temp$"', skipping file":ENDPROC
PRINT CHR$13;"Processing ";in$"..."
REPEAT
a$=GET$#in%
REPEAT:PROCScan:UNTILa$=""
UNTILEOF#in%
CLOSE#in%:in%=0
OSCLI"Delete "+outpath$+temp$
PRINTCHR$13;SPC20;CHR$13;
ENDPROC
:
DEFPROCScan
a$=FNuc(a$)
IFINSTR(a$,"POLLING DISTRICT"):pd$=RIGHT$(a$,2):a$="":ENDPROC
A%=INSTR(a$,"VOTED"):IFA%=0:a$="":ENDPROC :
a$=MID$(a$,A%+5) :
WHILE LEFT$(a$,1)=" ":a$=MID$(a$,2):ENDWHILE :
IFVALa$=0:a$="":ENDPROC :
A%=INSTR(a$," "):IFA%=0:a$="":ENDPROC :
num$=LEFT$(a$,A%-1):a$=MID$(a$,A%+1) :
thispd$=pd$:A%=INSTR(num$,":") :
IFA%:thispd$=LEFT$(a$,A%-1):num$=MID$(a$,A%+1) :
IFVALnum$=0:ENDPROC :
IFthispd$<"1" OR thispd$>"Z":ENDPROC :
IFMID$(pd$,2,1)<"A" OR MID$(pd$,2,1)>"Z":ENDPROC:
PROCWrVoter(out%,pd$+num$)
PRINTCHR$13;pd$;":";num$;SPC5;
ENDPROC
:
DEF PROCWrVoter(h%,a$)
BPUT#h%,LEFT$(a$,2)+":"+MID$(a$,3)+crlf$;
ENDPROC
:
DEFFNuc(A$):IFA$="":=""
FOR A%=1 TO LEN A$:IFMID$(A$,A%,1)>"_":A$=LEFT$(A$,A%-1)+CHR$(ASCMID$(A$,A%,1)AND&DF)+MID$(A$,A%+1)
NEXT:=A$