System.Classes.TStream.CopyFrom

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function CopyFrom(const Source: TStream; Count: Int64 = 0; BufferSize: Integer = $100000): Int64;

C++

__int64 __fastcall CopyFrom(TStream* const Source, __int64 Count = 0LL, int BufferSize = 0x100000);

プロパティ

種類 可視性 ソース ユニット
function public
System.Classes.pas
System.Classes.hpp
System.Classes TStream


説明

CopyFrom は、 あるストリームから別のストリームへ指定されたバイト数をコピーします。

次のアクションを実行するには、CopyFrom を使用します:

  • データをストリームから別のストリームにコピーします。
  • データをコピーする際の、バッファの作成、読み取り、書き込み、解放が必要なくなります。

CopyFrom が Source で指定されたストリームから別のストリームへ、Count 分のバイトをコピーする際、Count バイト毎に現在の位置を移動され、コピーされたバイト数を返します。

Count が 0 である場合は、CopyFrom により読み取り前に Source 位置が 0 に設定され、Source の内容全体がストリームにコピーされます。 Count が 0 より大きい(または小さい)場合は、CopyFrom は Source の現在の位置から読み取ります。

Count が -1 の場合、TStream.CopyFrom は、利用可能なすべてのコンテンツをコピーすることで、サイズが不明(つまり、Size が -1)のストリームもコピーすることができます。

警告: Count が SourceStream サイズより大きかった場合、ReadBuffer は、ストリーム読み込みエラーが発生した旨を告げる例外を発生させます。 これは、CopyFrom メソッドが ReadBuffer および WriteBuffer を使用しているために起こります。上述のように、Count を -1 で渡した場合には発生しません。
メモ: バージョン 11 では、メソッドは最適化されており、Count が大きな場合でもよりよいパフォーマンスを発揮します。

関連項目

コード サンプル