请教TFileStream.Seek函数为啥定位总不正确。

dreamnyj dreamnyj 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
FileStream := TfileStream.create(OpenDialog1.FileName,fmOpenRead );//正常


fileStream.Seek($0,soBeginning );
fileStream.Read(Buffer,100);//个人理解是从0处读可是不是,如果换成soCurrent 就会从0处读

fileStream.Seek($200,soBeginning);// 理解是从开始位 offset 0x200开始读,结果不知道读那去了。但是如果换成Socurrent就正常了。理论上,前面已经读到了100,这里不是0X300了?
fileStream.Read(Buffer,100);

fileStream.Seek($500,soBeginning);//理解,offset 0x500开始读,结果不知道读到那里,但我用ultraEdit步0x500,一定不是读的内容。

fileStream.Read(Buffer,100);

//TMD 为什么Seek函数总是不能正常的定位?


引用到VCL中这样定义:
type
{ TStream seek origins }
TSeekOrigin = (soBeginning, soCurrent, soEnd);


求指教,使用版本D7。
...全文

相关推荐

delphi读写取流记录文件TFileStream

在处理二进制数据时,确保正确设置流的位置,并使用适当的数据类型大小进行读写操作。同时,记得在完成操作后释放所有创建的流对象,以避免资源泄露。

ozhy111

深入理解Delphi中的TFileStream读取文件技术

在Delphi应用程序开发中,文件输入/输出(I/O)操作是数据持久化和信息交换的核心。TFileStream类作为Delphi提供的一个方便的文件流类,它简化了文件访问和管理的复杂性。本章节将介绍TFileStream的基础知识,为后续深入学习文件操作奠定基础。Seek方法是Delphi中用于在文件流中移动文件指针到指定位置的函数。使用Seek方法,我们可以对文件指针进行精确定位,以便进行读取或写入操作。Seek方法的基本工作机制是根据当前文件指针的位置,加上一个偏移量,从而移动到新的位置。

DataWizardess

使用TFileStream读文件

Seek方法接受一个Offset参数(相对于Origin的偏移量)和一个Origin参数(文件定位的起始点,如soFromBeginning、soFromCurrent或soFromEnd)。

2000年的六年级三好学生

二进制文件操作

TFileStream的Seek方法可以做到这一点,它接受一个偏移量和一个定位基准(soFromBeginning, soFromCurrent, 或 soFromEnd): ```delphi FileStream.Seek

tamade121

Delphi流文件操作

Seek方法:实现流中读取指针的移动,函数原形为Function Seek(Offset:Longint;Origint:Word):Longint;6.

mymaze
评论 1
收藏 已收藏
分享
返回顶部