home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / dos / hdrestor.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-05-13  |  2.8 KB  |  84 lines

  1. {$A+,B-,D-,E-,F-,G-,I-,L-,N-,O-,P-,Q-,R-,S-,T-,V-,X+,M 16384,0,655360}
  2. (*===================================================================*)
  3. (*                    HDRESTORE.PAS Version 1.0                      *)
  4. (*         Compiler: Turbo/Borland Pascal Real Mode Target           *)
  5. (*                Copyright (C) 1993 te-wi Verlag                    *)
  6. (*===================================================================*)
  7. (* Beschreibung:                                                     *)
  8. (*  Das Programm schreibt die HDSAVE.PAS gesicherten Daten der Fest- *)
  9. (*  platte wieder zurück. Achtung: Das Programm läuft nicht unter    *)
  10. (*  OS/2 2.0!                                                        *)
  11. (*===================================================================*)
  12.  
  13. PROGRAM HDRestore;
  14.  
  15. USES
  16.   Dos, DOSUtil;
  17.  
  18. TYPE
  19.   Buffer = ARRAY[1..512] OF BYTE;
  20. VAR
  21.   Buf      : Buffer;
  22.   i, j, r  : INTEGER;
  23.   answer   : STRING;
  24.   s, o     : WORD;
  25.   f        : File OF Buffer;
  26.  
  27. BEGIN
  28.   WriteLn(^M^J'HD-Restore Version 1.0');
  29.   WriteLn('Das Programm liest die Partitionstabelle und die Bootsek' +
  30.           'toren');
  31.   WriteLn('aus der Datei C:\SAVEFILE.BIN und schreibt die Daten in '
  32.         + 'die');
  33.   WriteLn('entsprechenden Festplattenbereiche zurück!');
  34.   WriteLn('Falls Sie zwischen dem Sichern der Daten und dem Aufruf '
  35.         + 'von');
  36.   WriteLn('HDRESTORE Änderungen in der Plattenstruktur vorgenommen '
  37.         +  'haben');
  38.   WriteLn('oder ein neues Betriebssystem installiert haben, kann die');
  39.   WriteLn('Plattenstruktur zerstört werden. Damit werden auch alle ' +
  40.           'Daten');
  41.   WriteLn('auf der Platte vernichtet!'^M^J);
  42.   Write('Wollen Sie HDRESTORE wirklich ausführen? (J/N) ');
  43.   ReadLn(answer);
  44.   IF (Pos('j', answer) > 0) OR (Pos('J', answer) > 0) THEN BEGIN
  45.    WriteLn;
  46.    Write('Sind Sie sich ganz sicher? (J/N) ');
  47.    ReadLn(answer);
  48.    IF (Pos('j', answer) > 0) OR (Pos('J', answer) > 0) THEN ELSE Halt
  49.   END ELSE Halt(0);
  50.   Assign(f, 'C:\SAVEFILE.BIN');
  51.   SetFAttr(f, Archive);
  52.   {$I-}
  53.   Reset(f);
  54.   {$I+}
  55.   IF IoResult <> 0 THEN
  56.   BEGIN
  57.     WriteLn('Fehler beim Lesen der Datei SAVEFILE.BIN');
  58.   END
  59.   ELSE
  60.   BEGIN
  61.     j := FileSize(f);
  62.     Read(f, Buf);
  63.     WritePartition(3, Buf);
  64.     Dec(j);
  65.     FOR i := 1 TO j DO
  66.     BEGIN
  67.       Read(f, Buf);
  68.       r := WriteBootSector(i + 2, Buf);
  69.       IF r <> 0 THEN
  70.       BEGIN
  71.         WriteLn('Fehler beim Schreiben des Bootsektors von Laufwerk ',
  72.                 Chr(BYTE(i) + 62), ': ');
  73.         Halt;
  74.       END;
  75.     END;
  76.     Close(f);
  77.     WriteLn('Die Partionstabelle und die Bootsektoren von C: bis ',
  78.             Chr(BYTE(i) + 62), ': ');
  79.     Writeln('wurden aus der Datei SAVEFILE.BIN zurückgeschrieben.');
  80.     SetFAttr(f, Hidden);
  81.   END;
  82. END.
  83.  
  84. (*===================================================================*)