縮寫形式:是否可以從指針創建流?德爾福中的增量指針/從指針創建流
我有一個指向我需要閱讀的文件數據的指針。我使用WriteBuffer()將指針中的數據傳輸到一個TFileStream,它可以工作。但是現在我想以塊的形式閱讀它來顯示進度條。所以我需要一步一步閱讀它。
我不得不選擇:
1)增量指針淺黃色,並使用WriteBuffer()如常。 (WriteBuffer總是從頭開始讀取,因此我需要增加指針)
2)從指針創建一個流。這可能嗎?
代碼:
var InputStream : TMemoryStream;
Buff: Pointer;
Header: TOCHeader;
begin
// Here I get the pointer
Size := GetOverlay(Buff);
// Transfer data to memory stream
InputStream.WriteBuffer(Buff^, SizeOf(Header));
InputStream.Seek(0, soFromBeginning);
// Read the header
InputStream.ReadBuffer(Header, SizeOf(Header));
// Increment the pointer. Doesn't work :-(. Message Ordinal type required
Inc(Buff, SizeOf(TOC));
您的兩個代碼的InputStream變量。你們都從中讀取並寫入。你能澄清嗎? – mghie 2009-07-31 10:00:13
哦,對不起。我修正了這個問題。我只是複製了重要的變量和代碼短語,而InputStream定義似乎非常重要;-)。 – Simon 2009-07-31 10:20:46
請注意,您需要在寫入和讀取它之間重置流的位置。您當前的代碼會引發異常。 – mghie 2009-07-31 10:33:45