home *** CD-ROM | disk | FTP | other *** search
-
- PROGRAM Kopiere_Files;
-
- USES Crt;
-
- CONST Speicher = $4000; {16 KByte}
- Block = 128; {Blockgrösse}
-
- VAR Puffer : ARRAY [1..Speicher] OF Byte;
- Original, Kopie : String[20];
- OriginalFile, KopieFile : File;
- Anzbloecke, Liesbloecke,
- Noch_zu_kopieren : Integer;
- Kopiert : Word;
-
- BEGIN
- REPEAT
- ClrScr;
- Writeln ('Kopierprogramm: ');
- Write ('Name der zu kopierenden Datei: ');
- Readln (Original);
- Assign (OriginalFile, Original);
- {$I-}Reset (OriginalFile); {$I+} {existiert File?}
- UNTIL IOResult = 0;
- Write ('Name der Kopie: ');
- Readln (Kopie);
- Assign (KopieFile,Kopie);
- Rewrite (KopieFile);
- Anzbloecke := Speicher DIV Block; {Zahl der zu kopierenden Blöcke}
- Seek (OriginalFile, FileSize (OriginalFile));
- IF Eof (OriginalFile) THEN Noch_zu_kopieren := FileSize (OriginalFile)
- ELSE Noch_zu_kopieren := FileSize (OriginalFile) +1;
- Reset (OriginalFile);
- WHILE Noch_zu_kopieren > 0 DO BEGIN {wenn noch etwas da}
- IF Anzbloecke <= Noch_zu_kopieren THEN Liesbloecke := Anzbloecke
- ELSE Liesbloecke := Noch_zu_kopieren;
- BlockRead (OriginalFile, Puffer, Liesbloecke, Kopiert);
- BlockWrite (KopieFile, Puffer, Liesbloecke, Kopiert);
- Noch_zu_kopieren := Noch_zu_kopieren - Liesbloecke
- END;
- Close (OriginalFile);
- Close (KopieFile)
- END.
-
-