5

我有一个将数据输出到流的 DLL。但它添加了我不想要的后缀和前缀。我可以创建一个 MemoryStream,让 DLL 输出数据然后修剪它,但是可能有几 GB 的数据,所以我只想将它直接保存到文件(FileStream)中。我认为最好的解决方案是创建自己的 Stream 类。所以我做了:

function TFileStream2.Write(const Buffer; Count: Integer): Longint;

我检查位置,如果它是= 0,那么我从缓冲区中丢弃前几个字节。这样我可以修剪文件的开头。但是我怎样才能检测到流的结束,以便我可以从最后丢弃一些字节?

4

1 回答 1

6

当流对象被销毁时,只需剪掉文件的最后部分。您可以通过修改Size属性来做到这一点。

于 2012-06-20T13:19:21.317 回答