求读取二进制文件的详细说明~

qhdxxf 2007-11-15 03:44:15
找了很久都没有找到可以使用的例子~~~~新接触Delphi,还有很多不明白的地方。

我的要求就是,从文件中的指定位置读出一个或者几个数据来,给变量。

要求Delphi 7 可以兼容的代码。

最好每行都有详细的解释。。
...全文
148 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huayufei 2007-11-20
  • 打赏
  • 举报
回复
var
fileName:String;
Cnt,i,j:Integer;
MemStream:TMemoryStream;
temp:Array of byte;
begin
if OpenDialog1.Execute then
begin
Edit1.Text:=OpenDialog1.FileName;
MemStream:=TMemoryStream.Create;
MemStream.LoadFromFile(OpenDialog1.FileName);
Cnt:=MemStream.Size;
MemStream.Position:=0;
SetLength(temp,Cnt);
MemStream.ReadBuffer(Pointer(temp)^,Cnt);
MemStream.free;
end;


这个temp估计就是你想要的结果了
qhdxxf 2007-11-20
  • 打赏
  • 举报
回复
谢谢~我这就去试验下下~~~~~~~~~~~~~~
大大怪老张 2007-11-19
  • 打赏
  • 举报
回复
F:Tfilestream;//声明一个文件流


用完了别忘了释放。
xi80h80 2007-11-17
  • 打赏
  • 举报
回复
是的,声明一个变量把缓冲区的赋值给变量就行了。。
xi80h80 2007-11-17
  • 打赏
  • 举报
回复
通过文件流读取
var
F:Tfilestream;//声明一个文件流
begin
F:=Tfilestream.Create(filename,Fmopenread or FmShareDenyNone); //创建文件流实例,filename是你要读取的文件的路径,Fmopenread or FmShareDenyNone是赋给只读属性和共享属性
F.Seek(offset,sofrombeginning); //定位指针倒你要读取二进制文件的偏移地址。
F.Read(buffer,S); //读取 buffser为一个缓冲区,S为你读取数据大小,就是从指针所处的位置开始算。

我这里只是简单的写了一下,你自己声明这些变量吧。
qhdxxf 2007-11-17
  • 打赏
  • 举报
回复
谢谢楼上的~
后面就是在声明个变量,把缓冲区中的东西传过来就可以使用了是吗???
qhdxxf 2007-11-16
  • 打赏
  • 举报
回复
没人回了啊~
qhdxxf 2007-11-16
  • 打赏
  • 举报
回复
var
F: File;
Num: Integer;
begin
AssignFile(F, 'd:\11.dat ');
Reset(f, 1);

Seek(F, 1000); //这个是什么意思啊~
BlockRead(F, Num, SizeOf(Num)); //这个是什么意思啊~

CloseFile(F);
end;

楼上的大大能否解释下??

本人比较笨,我就会用普通变量。。其他形式的就不大会鸟

比如 abd:=什么什么的形式~
oushengfen 2007-11-16
  • 打赏
  • 举报
回复
难道以上的回复不够解决你的问题吗?你还有什么疑问?
qhdxxf 2007-11-15
  • 打赏
  • 举报
回复
var
F: File;
Num: Integer;
begin
AssignFile(F, 'd:\11.dat ');
Reset(f, 1);

Seek(F, 1000); //这个是什么意思啊~
BlockRead(F, Num, SizeOf(Num)); //这个是什么意思啊~

CloseFile(F);
end;
confucius 2007-11-15
  • 打赏
  • 举报
回复
procedure TForm1.btn1Click(Sender: TObject);
var
F: File;
Num: Integer;
begin
AssignFile(F, 'd:\11.dat');
Reset(f, 1);

Seek(F, 1000);
BlockRead(F, Num, SizeOf(Num));

CloseFile(F);
end;
oushengfen 2007-11-15
  • 打赏
  • 举报
回复
TFileStream
oushengfen 2007-11-15
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20071108/10/9c238305-ad16-40c3-9781-c935bba78b7d.html

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧