! A program to convert a Contiguous (random) file to Sequential ! (Hash totals remain the same) ! Originally appeared in AMUS.LOG Vol 8 No 10 (Oct'85) pp 41+ ! Modified by Brad Horine, Hytek Amplifier Inc, 28 Jan 87 ! PROGRAM RANSEQ, 1.0(105) ! MAP1 RAND'RECORD,X,512 MAP1 SEQ'FILE$,S,10 MAP1 RAND'FILE$,S,30 MAP1 RAND'SIZE,F MAP1 RAND'COLON,F !next 3 comments by TDF/AM MAP1 RAND'DOT,F MAP1 RAND'BRACK,F MAP1 RAND'DELIM,F MAP1 REC9991,F MAP1 ERR'CODE,F MAP1 ERROR'MSG(2),S,30 ERROR'MSG(1) = "Random file not found" ERROR'MSG(2) = "File is not random" ! PRINT TAB(-1,0); "Random to Sequential File Transfer Utility"; ! ! Get Random Filename ! PRINT TAB(3,1); "Name of RANDOM file: "; INPUT LINE RAND'FILE$ ! ! Create a filnam.SEQ in this PPN ! x = x RAND'COLON = INSTR(1, RAND'FILE$, ":") RAND'DOT = INSTR(1, RAND'FILE$, ".") RAND'BRACK = INSTR(1, RAND'FILE$, "[") IF RAND'COLON = 0 AND RAND'DOT = 0 AND RAND'BRACK = 0 & THEN SEQ'FILE$ = RAND'FILE$ + ".SEQ" :& GOTO DAT'DEFAULT IF RAND'DOT > 0 AND RAND'BRACK = 0 THEN RAND'DELIM = RAND'DOT IF RAND'BRACK > 0 AND RAND'DOT = 0 THEN RAND'DELIM = RAND'BRACK IF RAND'BRACK > 0 AND RAND'DOT > 0 THEN RAND'DELIM = & RAND'DOT MIN RAND'BRACK SEQ'FILE$ = RAND'FILE$[(1 MAX RAND'COLON),RAND'DELIM-1] + ".SEQ" ! ! Default to .DAT if no extension given ! DAT'DEFAULT: IF RAND'DOT <> 0 THEN GOTO LOOKUP'FILE IF RAND'BRACK = 0 THEN RAND'FILE$ = RAND'FILE$ + ".DAT" & ELSE RAND'FILE$ = RAND'FILE$[1;RAND'BRACK-1] + ".DAT" & + RAND'FILE$[RAND'BRACK,LEN(RAND'FILE$)] ! LOOKUP'FILE: LOOKUP RAND'FILE$, RAND'SIZE IF RAND'SIZE = 0 THEN ERR'CODE = 1: GOTO ERROR'OUT IF RAND'SIZE > 0 THEN ERR'CODE = 2: GOTO ERROR'OUT RAND'SIZE = ABS(RAND'SIZE) PRINT TAB(5,1); "Converting "; RAND'FILE$; " to Sequential"; OPEN #9991, RAND'FILE$, RANDOM, 512, REC9991 OPEN #9992, SEQ'FILE$, OUTPUT ! PRINT TAB(7,1); "Dumping Record No."; ! FOR REC9991 = 0 TO RAND'SIZE - 1 PRINT TAB(7,21); REC9991 USING "####"; READ #9991, RAND'RECORD PRINT #9992, RAND'RECORD; !<-- note semicolon!! NEXT REC9991 ! CLOSE #9991: CLOSE #9992 PRINT TAB(9,1); "Sequential file is finished, name is "; SEQ'FILE$ PRINT : END ! ERROR'OUT: PRINT CHR(7); "?"; ERROR'MSG(ERR'CODE) END