Новости
Программы
Turbo Pascal
Игры
Документация
"Странности"
FAQ
Ссылки
Благодарности
От автора
| |
Q:> 2.4.3 Как скопировать файл?
A:> Читать его в буфер через BlockWrite, а затем записывать через
BlockWrite. Hапример:
procedure FileCopy(fileFrom, fileTo: string);
var
f1,f2:file;
p:pointer;
rb:word;
Begin
Assign(f1,fs); FileMode:=0; Reset(f1,1);
Assign(f2,fd); ReWrite(f1,1);
GetMem(p,32768);
If p=nil then begin WriteLn('Not enough memory !'); Halt; end;
Repeat
BlockRead(f1,p^,32768,rb);
BlockWrite(f2,p^,rb);
Until rb<>32768;
FreeMem(p,32768);
Close(f2); Close(f1);
End;
A:> Есть и более изящный вариант, реализованный в следующей проге:
Uses Objects;
Var
S1, S2: TBufStream;
Begin
If ParamCount <> 2 Then Halt(1);
S1.Init(ParamStr(1), stOpenRead);
S2.Init(ParamStr(2), stCreate);
S2.CopyFrom(S1, S1.GetSize);
S2.Done;
S1.Done;
End.
|