怎样从dat文件中读取4个字节的浮点数?(100分)

  • 主题发起人 主题发起人 DearLily
  • 开始时间 开始时间
D

DearLily

Unregistered / Unconfirmed
GUEST, unregistred user!
dat文件是由VC编写生成的,保存的是一批浮点数(每个数4个byte)。现在delphi中需要调用浮点数,请问该如何操作,能够一次读取4个byte的浮点数呢?
 
Type
PFloatArray = ^TFloatArray;
TFloatArray = array[0..8191] of Float;
 
ff.LoadFromFile('c:/123.dat');
Buf:= ff.Memory;

for i:= 0 to (ff.Size div Sizeof(Float)) - 1 do
Buf //你要的
 
to 白河愁:
SourceFile:=TFilestream.Create('c:/123.dat',fmOpenRead);
lennum:=SourceFile.Size div Sizeof(single) ;
SetLength(SourceBuf,lennum);
SourceFile.Read(SourceBuf[0],lennum);
SourceFile.Free;
这样可行否?
 
行,慢而已。
 
to 白河愁:
可是这样读出来的结果不对啊?不知道为什么了……
 
to 白河愁:
我的qq:82784255。可以指点我一下吗?谢谢了
 
白大哥一向收费的。准备好钱钱。
 
呵呵,行。只要问题解决了,白大哥说一声就行
 
晕,不是都写出来了吗?用我那个for的方法就可以了。
 
很不好意思啊,白大哥!
弱弱地问下:ff是什么类型?
 
ff是一个TMemoryStream
这个程序很简单的。
不需要在讨论了吧?
 
。。。老白非要拆成2个部分写

Type
PFloatArray = ^TFloatArray;
TFloatArray = array[0..8191] of Float;

var
ff:TMemorystream;
buf:PFloatArray;
begin
ff.LoadFromFile('c:/123.dat');
Buf:= ff.Memory;

for i:= 0 to (ff.Size div Sizeof(Float)) - 1 do
Buf //你要的
end;
 
多人接受答案了。
 
后退
顶部