我有一个DLL,可将数据输出到流中。但这会添加我不想要的后缀和前缀。
我可以创建一个MemoryStream,让DLL输出数据,然后修剪它,但是可以有几GB的数据,因此我只希望将其直接保存到文件(FileStream)中。
我认为最好的解决方案是创建自己的Stream类。
所以我做了:
function TFileStream2.Write(const Buffer; Count: Integer): Longint;
在这里我检查位置,如果它是= 0,那么我会从缓冲区中丢弃前几个字节。
这样,我可以修剪文件的开头。但是如何检测流的末尾,以便可以从末尾丢弃一些字节?
最佳答案
流对象销毁后,只需修剪文件的最后部分。您可以通过修改Size
属性来实现。