* * * * Item last updated: 16:24:28 16 FEB 1987 MIS.SNA.PROG.ATM DEVEL 2 OPENSEQ '&UFD&','DEB.200.DATA' TO DEB.200.DATA.FILE ELSE STOP 'Unable to open DEB.200.DATA' END OPENSEQ '&UFD&','DEB.250.DATA' TO DEB.250.DATA.FILE ELSE STOP 'Unable to open DEB.250.DATA' END OPEN '','PHP' TO PHP.FILE ELSE STOP 'Unable to open PHP file.' END TRUE = 1 FALSE = 0 OTHERS = TRUE EOF.200 = FALSE EOF.250 = FALSE LINES.PROCESSED = 0 LINE.200 = 0 LINE.250 = 0 LOOP LOOP READSEQ RECORD.200 FROM DEB.200.DATA.FILE ELSE EOF.200 = TRUE RECORD.200 = '' END LINE.200 += 1 UNTIL EOF.200 OR LEN(TRIM(RECORD.200)) GT 80 REPEAT LOOP READSEQ RECORD.250 FROM DEB.250.DATA.FILE ELSE EOF.250 = TRUE RECORD.250 = '' END LINE.250 += 1 UNTIL EOF.250 OR LEN(TRIM(RECORD.250)) GT 80 REPEAT UNTIL EOF.200 OR EOF.250 LINES.PROCESSED += 1 GOSUB EXTRACT.DATUM GOSUB COMPARE.NAMES IF NAMES.EQUAL THEN GOSUB COMPARE.PHP END ELSE PRINT PRINT 'Names do not match:' PRINT 'NAME.200 = >':NAME.200:'<' PRINT 'NAME.250 = >':NAME.250:'<' PRINT 'LINE.200 = ':LINE.200 PRINT 'LINE.250 = ':LINE.250 STOP END CRT '*': REPEAT PRINT PRINT 'CMPC DONE' STOP EXTRACT.DATUM: NAME.200 = TRIM(RECORD.200[21,30]) NAME.250 = TRIM(RECORD.250[24,26]) * HISTORY.200 = RECORD.200[74,36] * HISTORY.250 = RECORD.250[80,72] CURRENT.200 = RECORD.200[79,1] CURRENT.250 = RECORD.250[78,2] RETURN COMPARE.NAMES: NAMES.EQUAL = NAME.200 EQ NAME.250 RETURN COMPARE.PHP: * FOR I = 0 TO 11 * PTR.200 = 1 + (I * 3) * PTR.250 = 1 + (I * 6) * PHP.200 = HISTORY.200[PTR.200+2,1] * PHP.250 = HISTORY.250[PTR.250+4,2] PHP.200 = CURRENT.200 PHP.250 = CURRENT.250 READ PHP.REC FROM PHP.FILE, PHP.250 ELSE PHP.REC = '' END LOCATE PHP.200 IN PHP.REC<1,1> SETTING POS ELSE INS PHP.200 BEFORE PHP.REC<1,POS> END PHP.REC<2,POS> = PHP.REC<2,POS> + 1 PHP.REC<3,POS> = LINE.200 PHP.REC<4,POS> = LINE.250 * PHP.REC<5,POS> = (I + 1) WRITE PHP.REC TO PHP.FILE, PHP.250 * NEXT I RETURN END