Purge.Bad.Chars
From Pickwiki
Jump to navigationJump to search*
* Auto-created by command WALK FILE 09:46:02 25 SEP 2012
* WALK Code by Will Johnson, Creative Commons CC-BY
*
EQUATE FALSE TO 0, TRUE TO 1
$INCLUDE FFT.BP TCL.II
GOSUB INIT
CLEARSELECT ALL
*
PRINT "Checking for, and removing, bad characters":
PRINT " from file ":N.FILE
SELECT F.FILE
DONE = FALSE ; CNT = 0 ; CNT2 = 0
LOOP
READNEXT K.FILE ELSE DONE = TRUE
IF NOT(MOD(CNT,250)) THEN DISPLAY CHAR(13):CNT"R#6":
UNTIL DONE DO
CNT += 1
READ R.FILE FROM F.FILE,K.FILE THEN
GOSUB PROCESS.R.FILE
END
REPEAT
DISPLAY
PRINT CNT"R#6":' Records processed'
PRINT CNT2"R#6":' Records fixed'
STOP
*
INIT:
OPEN N.FILE TO F.FILE ELSE
PRINT "Cannot open file ":N.FILE ; STOP
END
BAD.CHARS =
FOR I = 0 TO 31
BAD.CHARS := CHAR(I)
NEXT I
FOR I = 128 TO 250
BAD.CHARS := CHAR(I)
NEXT I
RETURN
*
PROCESS.R.FILE:
TEST1.R.FILE = CONVERT(@AM:@VM:@SVM:@TM,,R.FILE)
IF TEST1.R.FILE # OCONV(TEST1.R.FILE,'MCP') THEN
RECORDLOCKU F.FILE,K.FILE ON ERROR RETURN LOCKED RETURN
CONVERT BAD.CHARS TO IN R.FILE
WRITE R.FILE ON F.FILE,K.FILE
CNT2 += 1 ; PRINT 'Fixed record ':K.FILE
END
RETURN
END