home *** CD-ROM | disk | FTP | other *** search
- PROGRAM COMPARE;(*$I+,S+ *)
- (* THIS PROGRAM WILL DO A BYTE BY BYTE COMPARE
- OF TWO FILES. UPON EXECUTION THE OPERATOR WILL
- BE ASKED THE NAME OF THE TWO INPUT FILES TO BE
- COMPARED AND THE NAME OF THE OUTPUT FILE THAT THE COMPARE INFO
- IS TO BE DUMPED TO. *)
- CONST
- BLANK14=' ';
- TYPE
- BYTE=0..255;
- STR4=STRING 4;
- STR16=ARRAY[1..16] OF CHAR;
- VAR
- NOCOMPARE: BOOLEAN;
- ABYTE1,ABYTE2: BYTE;
- FVAR1,FVAR2: FILE OF BYTE;
- FVAR3: TEXT;
- HEXSTRING: STR16;
- FNAME1,FNAME2,FNAME3: STRING 14;
- K: INTEGER;
- I: REAL;
- (****************************************************************)
- PROCEDURE CNVRTTOHEX(INT: INTEGER;VAR HEXVAL: STR4);
- CONST
- HEX1000=4096;
- VAR
- K,DIVISOR,J: INTEGER;
- BEGIN
- HEXVAL:=' ';
- DIVISOR:=HEX1000;
- FOR K:=1 TO 4 DO
- BEGIN
- J:=INT DIV DIVISOR;
- INT:=INT MOD DIVISOR;
- HEXVAL[K]:=HEXSTRING[J+1];
- DIVISOR:=DIVISOR DIV 16;
- END;
- END;
- (****************************************************************)
- PROCEDURE LOGDIFF;
- VAR
- T1:STR4;
- TEMPINT: INTEGER;
- BEGIN
- WRITE(FVAR3,I:5:0,' ');
- TEMPINT:=ABYTE1;
- CNVRTTOHEX(TEMPINT,T1);
- WRITE(FVAR3,T1[3],T1[4],' ');
- TEMPINT:=ABYTE2;
- CNVRTTOHEX(TEMPINT,T1);
- WRITELN(FVAR3,T1[3],T1[4]);
- END;
- (****************************************************************)
- BEGIN
- HEXSTRING:='0123456789ABCDEF';
- NOCOMPARE:=FALSE;
- FNAME1:=BLANK14;
- FNAME2:=BLANK14;
- FNAME3:=BLANK14;
- WRITE('ENTER COMPARE FILE NUMBER 1-- ');
- READLN(FNAME1);
- WRITE('ENTER COMPARE FILE NUMBER 2-- ');
- READLN(FNAME2);
- WRITE('ENTER OUTPUT LOG FILE-- ');
- READLN(FNAME3);
- RESET(FNAME1,FVAR1);
- RESET(FNAME2,FVAR2);
- REWRITE(FNAME3,FVAR3);
- I:=1;
- WRITELN(FVAR3,'COMPARING ',FNAME1,' WITH ',FNAME2);
- WRITELN('COMPARING ',FNAME1,' WITH ',FNAME2);
- WRITELN('VERSION 0.0 ,2/22/81 OF COMPARE PROGRAM');
- WHILE ((NOT EOF(FVAR1)) AND (NOT EOF(FVAR2))) DO
- BEGIN
- READ(FVAR1,ABYTE1);
- READ(FVAR2,ABYTE2);
- IF ABYTE1<>ABYTE2
- THEN
- BEGIN
- LOGDIFF;
- NOCOMPARE:=TRUE;
- END;
- I:=I+1;
- END;
- IF (EOF(FVAR1) AND (NOT EOF(FVAR2)))
- THEN
- BEGIN
- WRITELN(FVAR3,FNAME2,' IS LONGER THAN ',FNAME1);
- NOCOMPARE:=TRUE;
- END;
- IF ((NOT EOF(FVAR1)) AND EOF(FVAR2))
- THEN
- BEGIN
- WRITELN(FVAR3,FNAME1,' IS LONGER THAN ',FNAME2);
- NOCOMPARE:=TRUE;
- END;
- IF NOT NOCOMPARE
- THEN
- WRITELN(FVAR3,' BOTH FILES COMPARED COMPLETELY WITH EACH OTHER');
- WRITELN(FVAR3,' THERE WERE ',(I-1):2:0,' CHARACTERS READ');
- END.
-