gpt4 book ai didi

delphi - TStream.Position 与 TStream.Seek 比较

转载 作者:行者123 更新时间:2023-12-03 14:49:28 25 4
gpt4 key购买 nike

要移动 TStream 类中的“当前字节”指针,我们可以使用属性 Position(例如 MyStream.Position := 0)或使用 Seek 方法(例如 MyStream.Seek(0, soFromBeginning)。问题是,哪一个是更高效(又名更快)?(我没有来源,所以我无法自己检查)。

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

最佳答案

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

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

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

我个人的建议是设置位置。至少在未来会是更好的选择。

关于delphi - TStream.Position 与 TStream.Seek 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com