如何检测流的结束?

Tom*_*Tom 5 delphi position file stream eof

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

function TFileStream2.Write(const Buffer; Count: Integer): Longint;
Run Code Online (Sandbox Code Playgroud)

我检查位置,如果它是= 0,那么我从缓冲区丢弃前几个字节.这样我可以修剪文件的开头.但是,如何检测流的结束,以便从末尾丢弃一些字节?

Dav*_*nan 6

当流对象被销毁时,只需修剪文件的最后部分.您可以通过修改Size属性来完成此操作.