加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 我如何从TFileStream和TMemoryStream中下载?

发布时间:2020-12-15 09:42:50 所属栏目:大数据 来源:网络整理
导读:我有一个继承自TFileStream的类和一个继承自TMemoryStream的类.两者都实现与读取数据完全相同的功能,例如: TCustomFileStream = class (TFileStream) function ReadByte: byte; function ReadWord: word; function ReadWordBE: word; function ReadDWord: l
我有一个继承自TFileStream的类和一个继承自TMemoryStream的类.两者都实现与读取数据完全相同的功能,例如:

TCustomFileStream = class (TFileStream)
  function ReadByte: byte;
  function ReadWord: word;
  function ReadWordBE: word;
  function ReadDWord: longword;
  function ReadDWordBE: longword;
  function ReadString(Length: integer): string;
  function ReadBlockName: string;
  etc

当我想编写一个可以将任何类型的流作为参数的函数时,我必须使用TStream:

function DoStuff(SourceStream: TStream);

这当然意味着我无法使用自定义功能.
什么是解决这个问题的最好方法?理想情况下,我希望能够有一个兼容FileStream或MemoryStream的Tst??ream兼容类,所以我可以做这样的事情,如果流是FileStream或MemoryStream则无关紧要:

function DoStuff(SourceStream: TMyCustomStream);
begin
    data := SourceStream.ReadDWord;
    otherData := SourceStream.Read(Buffer,20);

end;

解决方法

要回答实际问题标题中的问题:你不能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读