! UTFIXL.BAS - FIX a FILe that has lines longer than 510 characters
!
! Copyright @1985 by David W. Barrow III
!
! Date Who L What
!-------- --- - ---------------------------------------------------
!04-28-85 DWB Original Coding
!
MAP1 VERSION,S,9,"VER042885"
PROGRAM UTFIXL,85.04A(28)
MAP1 MISC'STR'MAPS
MAP2 CHAR,S,1,"" ! Test for control
MAP2 CLEAN'LINE,S,80,"" ! out'line cleaned of CTRL-?
MAP2 CONTINUE,S,1,"N" ! ans to do you want
MAP2 IN'FILESPEC,S,24,"" ! Input file specifcation
MAP2 IN'LINE,S,10000,"" ! Input line
MAP2 OUT'FILESPEC,S,24,"" ! Output file specification
MAP2 OUT'LINE,S,80,"" ! Output line
MAP1 MISC'FP'MAPS
MAP2 CHAR'NUM,F,6,0 ! Line character check loop
MAP2 COUNTER,F,6,0 ! File line counter loop
MAP2 COUNTER2,F,6,0 ! Line parcer loop counter
MAP2 EXIST,F,6,0 ! Lookup answer
MAP2 LINE'LEN,F,6,0 ! line length
MAP2 NAME'LEN,F,6,0 ! Length of input file name
HOUSEKEEPING:
! Standard Error Routine
ON ERROR GOTO ERR'ROUTINE
PRINT TAB(-1,0)
PRINT TAB(01,10); "UTFIXL - David W. Barrow III's LINE FIXER"
PRINT TAB(03,05); "This program takes a file with lines longer"; &
" than 510 characters "
PRINT TAB(04,01); "and outputs a file with the same name.RFM "; &
"which will have those"
PRINT TAB(05,01); "lines divided into 80 character lines"
PRINT TAB(06,05); "The process also cleans out the Control characters"
PRINT TAB(08,10); "Are you SURE you want to run this program (Y/N) ";
INPUT CONTINUE
IF ( CONTINUE # "Y" ) &
THEN GOTO QUIT
PRINT TAB(10,10); "File to reformat (NNNNNN.NNN)";
INPUT IN'FILESPEC
NAME'LEN = INSTR(1,IN'FILESPEC,".")
LOOKUP IN'FILESPEC, EXIST
IF ( EXIST = 0 ) &
THEN PRINT TAB(10,10); "That file does not exist" &
: STOP &
: GOTO HOUSEKEEPING
OPEN #1, IN'FILESPEC, INPUT
OUT'FILESPEC = LEFT$(IN'FILESPEC,NAME'LEN) + "RFM"
OPEN #2, OUT'FILESPEC, OUTPUT
! MAINLINE:
PRINT TAB(12,24); "The line# being processed is ";
FOR COUNTER = 1 TO 10000
PRINT TAB(12,55); COUNTER;
IF ( EOF(1) # 0 ) &
THEN COUNTER = 10000 &
: GOTO NEXT'IN'LINE
INPUT LINE #1, IN'LINE
LINE'LEN = LEN(IN'LINE)
FOR COUNTER2 = 1 TO LINE'LEN STEP 80
OUT'LINE = MID$(IN'LINE,COUNTER2,80)
CALL CONTROL'ERASE
PRINT #2, OUT'LINE
NEXT COUNTER2
NEXT'IN'LINE:
NEXT COUNTER
EXIT:
CLOSE #1
CLOSE #2
PRINT TAB(23,01); "The file has been reformatted"
QUIT:
END
!!!!!!!!!!!!!!!!!!!!!!!
! PROGRAM SUBROUTINES !
!!!!!!!!!!!!!!!!!!!!!!!
CONTROL'ERASE:
CLEAN'LINE = SPACE$(80)
XCALL STRIP, CLEAN'LINE
FOR CHAR'NUM = 1 TO 80
CHAR = MID$(OUT'LINE,CHAR'NUM,1)
IF ( ASC(CHAR) > 31 ) &
AND ( ASC(CHAR) < 127 ) &
THEN CLEAN'LINE = CLEAN'LINE + CHAR
NEXT CHAR'NUM
OUT'LINE = CLEAN'LINE
RETURN
!!!!!!!!!!!!!!!!!!!!!!!!
! STANDARD SUBROUTINES !
!!!!!!!!!!!!!!!!!!!!!!!!
ERR'ROUTINE:
! Check for AlphaBASIC error
IF ( ERR(0) = 0 ) &
THEN GOTO ISAM'ERROR
! Display Basic error
PRINT TAB(-1,0) ! Clear Screen
PRINT TAB(12,15); "?? Fatal AlphaBASIC Error "; STR$(ERR(0))
IF ( ERR(1) ) &
THEN PRINT TAB(13,15); " at line "; STR$(ERR(1))
IF ( ERR(2) ) &
THEN PRINT TAB(14,15); " on Channel "; STR$(ERR(2))
GOTO ERROR'ABORT
ISAM'ERROR:
! IF (
ERROR'ABORT:
PRINT TAB(20,15); "!! Contact System Operator Immediately !!"
PRINT TAB(21,01);
END
! ******* END OF UTFIXL.BAS *******