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

delphi – 与TStream.Seek相比的TStream.Position

发布时间:2020-12-15 09:50:26 所属栏目:大数据 来源:网络整理
导读:要在TStream类中移动“当前字节”指针,我们可以使用属性Position(例如MyStream.Position:= 0)或使用Seek方法(例如MyStream.Seek(0,soFromBeginning).问题是,哪一个更有效(又快点??(我没有源,所以我自己无法检查). 到目前为止,我总是使用Seek定位指针. 解
要在TStream类中移动“当前字节”指针,我们可以使用属性Position(例如MyStream.Position:= 0)或使用Seek方法(例如MyStream.Seek(0,soFromBeginning).问题是,哪一个更有效(又快点??(我没有源,所以我自己无法检查).

到目前为止,我总是使用Seek定位指针.

解决方法

由于TStream.Seek是一个处理32位或64位值的重载函数,它取决于当前的流实现,这可能是更好的选择.

例如,TCustomMemoryStream实现了32位版本的Seek().当您在该流上设置Position时,它将首先调用64位版本,该版本在调用32位版本时将值转换为Longint. (这可能会随着64位版本的Delphi而改变!)

另一方面,THandleStream实现了64位版本的Seek().当您使用32位值调用Seek()时,您最终会调用一个非常讨厌的机制来调用64位版本.

我个人的建议是设定位置.至少它将来是更好的选择.

(编辑:李大同)

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

    推荐文章
      热点阅读