2012-06-20 175 views
5

我有一個DLL出現數據流到一個流。但它增加了一個後綴和我不想要的前綴。 我可以創建一個MemoryStream,讓DLL輸出數據,然後修剪它,但可以有幾GB的數據,所以我只是希望它被直接保存到一個文件(FileStream)。 我認爲最好的解決方案是創建自己的Stream類。 所以,我提出:如何檢測流結束?

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

,我檢查位置,如果是= 0,那麼我放棄從緩衝區前幾個字節。 這樣我可以修剪文件的開始。但是,如何檢測流結束,以便我可以從最後丟棄一些字節?

回答

6

當流對象被銷燬時,只需修剪掉文件的最後部分。您可以通過修改Size屬性來完成此操作。

+0

但我認爲字節已經保存到磁盤。這樣可以縮短文件嗎? – Tom

+0

它的工作!非常感謝,大衛! – Tom