关于tfilestream 流问题 (50分)

  • 主题发起人 主题发起人 chshanghai
  • 开始时间 开始时间
C

chshanghai

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样处理流中的数据
例如:
ver
; vfilestream:tfilestream;
; vchar :pchar ;
;begin
; ; // vfile 中保存的是 文件名
; ; vfilestream:=tfilestream.Create(vfile,fmopenreadWrite);
end;
我想用一个指针 vchar 指向vfielstream 的数据区 然后处理流中的数据但我发现我怎么也得不到
vfilestream数据区的地址;
 
把流读到一个内存块中,不就可以用指针了吗,DX.
 
我就是想知道如何得到这个指针??
 
Reads bytes from the stream into Buffer.

procedure ReadBuffer(var Buffer; Count: Longint);

Description

Use ReadBuffer to read Count bytes from the stream into a buffer in cases where the number of bytes is known and fixed, for example when reading in structures. ReadBuffer is used internally for loading from a stream and copying from a stream.

ReadBuffer calls Read to do the actual reading. If Count bytes cannot be read from the stream, an EReadError exception is raised.
 
我的一个帖子无法提交再试一下!
代码:
var 
 ; vfilestream:tfilestream;
 ; vchar :pchar;
 ; iCur:integer;
begin
 ;  ;  ;vfilestream:=tfilestream.Create(vfile,fmopenreadWrite);
 ;  ;  ;iCur:=vfilestream.size;
 ;  ;  ;GetMem(vchar,iCur);
 ;  ;  ;vfilestream.readbuffer(vchar^,iCur);

end;
这下可以了吧!
 
你自已用过没有
你贴的这个帮助我已看过 也用过但是不行
; ;fsize:=vfilestream.Size ;
; vchar:=allocmem(fSize);
; vfilestream.ReadBuffer(vchar,fsize);
; 此时vchar 中应是vfilestream 的内容但结果不是
 
说的不是我这个吧!
 
to ; superJs ;
;不是你 ;我试一下你的程序
 
我可以直接取得vfilestream 中的数据吗 ?????
 
vchar^中就是你要的内容啊!
 
to superJS
不好意思 这两天有点事 没有给你回复
我的意思是vfilestream.create)() 已经把文件中的内容读入内存 中
我想直接知道这个地址
而上面的方法 用allocmem() 分配另一块内存 ;并拷贝 ;文件的内容到此内存中
总感觉浪费了空间
如果文件小还行如果是一个大文件就难说了
 
接受答案了.
 

Similar threads

后退
顶部