ストリーム間のデータのコピー
ストリームの使用 への移動
一方のストリームからもう一方のストリームにデータをコピーするときは、データの読み取りと書き込みを明示的に行う必要はありません。代わりに、次の例に示すように CopyFrom メソッドを使用できます。
次の例では、ストリームを使って、一方のファイルをもう一方のファイルにコピーしています。このアプリケーションには、2 つの編集コントロール(EdFrom および EdTo)と[Copy File]ボタンが含まれています。
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;
}
}