home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* CHK.INC *)
- (* für Turbo Pascal 3.x / 4.0 / 5.0 zum selbsttätigen *)
- (* Virentest *)
- (* Achtung: Nur auf .EXE/.COM - File anwenden! *)
- (* (c) 1989 Klaus Ruzicka & TOOLBOX *)
- (* ------------------------------------------------------ *)
-
- PROCEDURE selftest(name : str12);
-
- CONST test : ARRAY [0..24] OF CHAR =
- '1111111111000000000000000';
-
- VAR i, laenge : INTEGER;
- datei : FILE OF CHAR;
- zaehler : INTEGER;
- c : CHAR;
- vgl, tst : ARRAY[0..24] OF CHAR;
-
- BEGIN
- vgl := '0000000000000000000000000';
- tst := '0000000000000000000000000';
- FOR zaehler := 0 TO 9 DO BEGIN
- vgl[zaehler] := '1';
- tst[zaehler] := '1';
- END;
- {$I-}
- Assign(datei, name);
- Reset(datei);
- {$I+}
- zaehler := IOResult;
- IF zaehler <> 0 THEN BEGIN
- WriteLn('Selbsttest: DOS-Fehler Nr.:', zaehler);
- Halt(1);
- END;
- FOR zaehler := 10 TO 24 DO
- Read(datei, vgl[zaehler]);
- IF test = tst THEN BEGIN
- { Datei noch nicht initialisiert }
- Reset(datei);
- WriteLn('Selbsttest: Initialisierung.');
- WriteLn('(C) 1989 Klaus Ruzicka & TOOLBOX');
- WriteLn('...nur auf .EXE- und .COM-Files anwenden, ');
- WriteLn('Dateien bitte nicht mit EXEPACK packen!');
- i := 0;
- zaehler := 0;
- laenge := FileSize(datei);
- REPEAT
- Read(datei, c);
- IF c = chr(49) THEN zaehler := zaehler + 1
- ELSE zaehler := 0;
- i := i + 1;
- IF (i MOD 500) = 0 THEN BEGIN
- GotoXY(1, 5);
- WriteLn('Lese Byte ', i:6, ' von ', laenge:6);
- END;
- UNTIL (i = laenge - 1) OR (zaehler = 10);
- {$I-}
- IF zaehler = 10 THEN
- FOR zaehler := 10 TO 24 DO
- Write(datei, vgl[zaehler])
- ELSE BEGIN
- WriteLn(chr(7) +
- 'Selbsttest: Fehler bei Initialisierung!');
- Halt(1);
- END;
- {$I+}
- zaehler := IOResult;
- if zaehler <> 0 then begin
- Writeln('Selbsttest: DOS-Fehler Nr.:', zaehler);
- Halt(1);
- END
- END ELSE
- { Datei bereits initialisiert --> Testen ob ok }
- IF test <> vgl THEN BEGIN
- Writeln(Chr(7) +
- 'Selbsttest: Dateibeginn wurde verändert! Virus? ');
- Halt(1);
- END;
- Close(datei);
- END;
- (* ------------------------------------------------------ *)
- (* Ende von CHK.INC *)