home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* CHECKSUM.PAS *)
- (* Mit dieser Unit kann sich ein Programm nach jedem *)
- (* Start selbst auf Veränderungen überprüfen. *)
- (* (c) 1990 G. Hegmanns & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT CheckSum;
-
- INTERFACE
-
- USES Dos, Crt;
-
- PROCEDURE CheckProgFileForChange(DrivePathAndName : STRING);
-
- IMPLEMENTATION
-
- PROCEDURE CheckProgFileForChange(DrivePathAndName : STRING);
-
- VAR
- Prog : FILE;
- Block : ARRAY [1..15000] OF BYTE;
- BlockLength : WORD;
- Lrc : BYTE;
- Z : WORD;
- IOError : BOOLEAN;
-
- BEGIN
- IOError := FALSE;
- Assign(Prog, DrivePathAndName);
- {$I-}
- Reset(Prog, 1);
- {$I+}
- IF IOResult > 0 THEN IOError := TRUE;
- IF NOT IOError THEN BEGIN
- lrc := 0;
- REPEAT
- {$I-}
- BlockRead(Prog, Block, SizeOf(Block), BlockLength);
- {$I+}
- IF IOResult > 0 THEN IOError := TRUE;
- FOR Z := 1 TO BlockLength DO Inc(Lrc, Block[Z]);
- UNTIL (BlockLength = 0) OR IOError;
- END;
- IF IOError THEN BEGIN
- WriteLn;
- WriteLn('Fehler beim Lesen des Programms.');
- Halt(255);
- END;
- IF lrc > 0 THEN BEGIN
- WriteLn;
- WriteLn('Fehler: ', 256 - Lrc);
- writeln('Der Code wurde nach dem Compilieren geändert');
- writeln('Programm wird nicht ausgeführt.');
- writeln('Bitte System auf Viren untersuchen!');
- Halt(255);
- END;
- END;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von CHECKSUM.PAS *)