home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qpdemo / beispiel / copyfile.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-08-24  |  1.4 KB  |  45 lines

  1.  
  2. PROGRAM Kopiere_Files;
  3.  
  4. USES Crt;
  5.  
  6. CONST   Speicher = $4000;  {16 KByte}
  7.       Block    = 128;    {Blockgrösse}
  8.  
  9. VAR     Puffer                          : ARRAY [1..Speicher] OF Byte;
  10.       Original, Kopie         : String[20];
  11.       OriginalFile, KopieFile : File;
  12.       Anzbloecke, Liesbloecke,
  13.       Noch_zu_kopieren        : Integer;
  14.       Kopiert         : Word;
  15.  
  16. BEGIN
  17.  REPEAT
  18.   ClrScr;
  19.   Writeln ('Kopierprogramm: ');
  20.   Write ('Name der zu kopierenden Datei: ');
  21.   Readln (Original);
  22.   Assign (OriginalFile, Original);
  23.   {$I-}Reset (OriginalFile); {$I+}   {existiert File?}
  24.       UNTIL IOResult = 0;
  25.       Write ('Name der Kopie: ');
  26.       Readln (Kopie);
  27.       Assign (KopieFile,Kopie);
  28.       Rewrite (KopieFile);
  29.       Anzbloecke := Speicher DIV Block; {Zahl der zu kopierenden Blöcke}
  30.       Seek (OriginalFile, FileSize (OriginalFile));
  31.   IF Eof (OriginalFile) THEN Noch_zu_kopieren := FileSize (OriginalFile)
  32.           ELSE Noch_zu_kopieren := FileSize (OriginalFile) +1;
  33.   Reset (OriginalFile);
  34.       WHILE Noch_zu_kopieren > 0 DO BEGIN  {wenn noch etwas da}
  35.       IF Anzbloecke <= Noch_zu_kopieren THEN Liesbloecke := Anzbloecke
  36.                ELSE Liesbloecke := Noch_zu_kopieren;
  37.   BlockRead (OriginalFile, Puffer, Liesbloecke, Kopiert);
  38.   BlockWrite (KopieFile,   Puffer, Liesbloecke, Kopiert);
  39.   Noch_zu_kopieren := Noch_zu_kopieren - Liesbloecke
  40.  END;
  41.  Close (OriginalFile);
  42.  Close (KopieFile)
  43. END.
  44.  
  45.