2012-06-20 3 views
5

私はストリームにデータを出力するDLLを持っています。しかし、私は望んでいない接尾辞と接頭辞を追加します。 私はMemoryStreamを作成し、DLLにデータを出力させてからトリミングすることができますが、数GBのデータがある可能性がありますので、ファイル(FileStream)に直接保存してください。 私は最高のソリューションは、独自のストリームクラスを作成することだと思います。 だから私は作っ:ストリームの終了を検出するにはどうすればよいですか?

私は位置を確認し、それが= 0であるならば、私はバッファから最初の数バイトを破棄
function TFileStream2.Write(const Buffer; Count: Integer): Longint; 

。 このようにして、ファイルの先頭部分をトリミングすることができます。しかし、どのように私は最後からいくつかのバイトを捨てることができるストリームの終わりを検出することはできますか?

答えて

6

ストリームオブジェクトが破棄されたときは、ファイルの最後の部分をトリミングします。これを行うには、Sizeプロパティを変更します。

+0

しかし、私はバイトが既にディスクに保存されていると思います。この方法でファイルを短縮することはできますか? – Tom

+0

それは働いた!ありがとう、デイビッド! – Tom