Copier des données entre des flux
Remonter à Utilisation des flux
Lors de la copie de données d’un flux vers un autre, il n’est pas nécessaire de lire puis d’écrire explicitement les données. Vous pouvez utiliser à la place la méthode CopyFrom, telle qu’elle est illustrée dans l’exemple suivant.
Dans l’exemple suivant, un fichier est copié dans un autre à l’aide de flux. L’application comprend deux contrôles d’édition (EdFrom et EdTo) et un bouton Copier le fichier :
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* stream1 = TFileStream::Create(From.Text,
fmOpenRead | fmShareDenyWrite);
try {
TStream* stream2->TFileStream::Create
(To.Text fmOpenCreate | fmShareDenyRead);
try {
stream2->CopyFrom(stream1, stream1->Size);
}
__finally {
delete stream2;
}
}
__finally {
delete stream1;
}
}