ストリーム間のデータのコピー

提供: Appmethod Topics
移動先: 案内検索

ストリームの使用 への移動


一方のストリームからもう一方のストリームにデータをコピーするときは、データの読み取りと書き込みを明示的に行う必要はありません。代わりに、次の例に示すように 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;
    }
}

関連項目