10 ' FILTERS NON-ASCII CHARACTERS FROM A FILE 20 ' USEFUL FOR CLEANING UP NULLS AND CONTROL CHARACTERS FROM A 30 ' TRANSMITTED FILE. 40 ' RICHARD STECK 820511 50 ' 60 ' 70 CLOSE 80 DEFINT A-Z 90 ON ERR GOTO 470 100 KEY OFF 110 CLS:WIDTH 80: LOCATE 12,,1 120 INPUT " ENTER NAME OF FILE TO BE FILTERED "; F1$ 130 PRINT 140 INPUT " ENTER DESTINATION FILE NAME "; F2$ 150 IF F1$ = F2$ THEN GOTO 110 160 PRINT: PRINT 170 PRINT TAB(10), "Source file name is: "; TAB(33); F1$ 180 PRINT 190 PRINT TAB(10), "Destination file name is: ";TAB(33); F2$ 200 PRINT 210 INPUT " Is that correct(Y/N/Q)? "; ANS$ 220 IF (LEFT$(ANS$,1) = "Q") OR (LEFT$(ANS$,1) = "q" ) THEN STOP 230 IF NOT ((LEFT$(ANS$,1) = "Y") OR (LEFT$(ANS$,1) = "y") ) THEN GOTO 160 240 OPEN F1$ FOR INPUT AS #1 250 OPEN F2$ FOR OUTPUT AS #2 260 ' 270 WHILE NOT EOF(1) 280 LINE INPUT #1,A$ 290 ' 300 PRINT A$ : ' DISPLAY STRING 310 GOSUB 370 320 PRINT #2,A$ 330 WEND 340 CLOSE 1,2 350 STOP 360 ' 370 ' FILTER OUT NULLS FROM A$ 380 AA$= STRING$(255," ") 390 J = 1 400 FOR I = 1 TO LEN(A$) 410 TEST = ASC(MID$(A$,I,1)) 420 IF TEST < 32 AND (TEST < 7 OR TEST > 13) THEN GOTO 430 ELSE MID$(AA$,J,1) = MID$(A$,I,1) : J = J + 1 430 NEXT I 440 A$ = LEFT$(AA$,J-1) 450 RETURN 460 ' 470 PRINT : PRINT "ERROR CONDITION "; ERR; " IN LINE NO. "; ERL: PRINT : STOP