System.Classes.TStream.CopyFrom
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 が大きな場合でもよりよいパフォーマンスを発揮します。