如何检测流的结束?

时间:2012-06-20 12:47:44

标签: delphi file stream position eof

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

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

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

1 个答案:

答案 0 :(得分:6)

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