缩写形式:是否可以从指针创建流?德尔福中的增量指针/从指针创建流
我有一个指向我需要阅读的文件数据的指针。我使用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