请教TFileStream.Seek函数为啥定位总不正确。
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。
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
在处理二进制数据时,确保正确设置流的位置,并使用适当的数据类型大小进行读写操作。同时,记得在完成操作后释放所有创建的流对象,以避免资源泄露。
深入理解Delphi中的TFileStream读取文件技术
在Delphi应用程序开发中,文件输入/输出(I/O)操作是数据持久化和信息交换的核心。TFileStream类作为Delphi提供的一个方便的文件流类,它简化了文件访问和管理的复杂性。本章节将介绍TFileStream的基础知识,为后续深入学习文件操作奠定基础。Seek方法是Delphi中用于在文件流中移动文件指针到指定位置的函数。使用Seek方法,我们可以对文件指针进行精确定位,以便进行读取或写入操作。Seek方法的基本工作机制是根据当前文件指针的位置,加上一个偏移量,从而移动到新的位置。
使用TFileStream读文件
Seek方法接受一个Offset参数(相对于Origin的偏移量)和一个Origin参数(文件定位的起始点,如soFromBeginning、soFromCurrent或soFromEnd)。
二进制文件操作
TFileStream的Seek方法可以做到这一点,它接受一个偏移量和一个定位基准(soFromBeginning, soFromCurrent, 或 soFromEnd): ```delphi FileStream.Seek
Delphi流文件操作
Seek方法:实现流中读取指针的移动,函数原形为Function Seek(Offset:Longint;Origint:Word):Longint;6.


语言基础/算法/系统设计
