When copying data from one stream to another, you do not need to explicitly read and then write the data. Instead, you can use the CopyFrom method, as illustrated in the following example.
In the following example, one file is copied to another one using streams. The application includes two edit controls (EdFrom and EdTo) and a Copy File button.
procedure TForm1.CopyFileClick(Sender: TObject); var Source, Destination:TStream; begin Source := TFileStream.Create(edFrom.Text, fmOpenRead or fmShareDenyWrite); try Destination := TFileStream.Create(edTo.Text, fmOpenCreate or fmShareDenyRead); try Destination.CopyFrom(Source,Source.Size); finally Destination.Free; end; finally Source.Free end;
void __fastcall TForm1::CopyFileClick(TObject *Sender) { TStream* Source= new TFileStream(edFrom->Text, fmOpenRead | fmShareDenyWrite); try { TStream* Destination = new TFileStream(edTo->Text, fmCreate | fmShareDenyRead); try { Destination -> CopyFrom(Source, Source->Size); } __finally { delete Destination; } } __finally { delete Source; } }
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|