一个很大的文件(250M)中,某一个字节开始连续的保存的是32位浮点数据,
请问前辈们:如何读取 这些数据,并保存得到文本中?
如何把在文本中修改过的数据重新存储到这个很大的文件中(替换原来的32位浮点数据)
谢谢啦!
请问前辈们:如何读取 这些数据,并保存得到文本中?
如何把在文本中修改过的数据重新存储到这个很大的文件中(替换原来的32位浮点数据)
谢谢啦!
解决方案 »
- C语言和delphi语言的解密函数得不到同样的结果请高手进来帮忙看看函数有没问题
- Delphi中如何在edit中显示查询到的列表中某一项数值?
- SQL查询条件如何与数组结合起来??
- 装有Delphi7 的电脑里装了VS2005,结果 Delphi7 的 ADO 连接和断开 ORACLE9I 时都会报错
- 没有解决的问题,再发!怎么样格式化fastreport中的数值?如位数不足6位,就在前台补0?
- 我学做了一个登陆模块,可出现这样的问题:
- 这样的程序如何编,谁有好思路,回复均有分...
- 如何让报表的项目数据换行显示?
- 手机短信息的发送的问题 1000分
- !!!!!在线等待,线程问题…………
- 请教一个自动编号的问题
- 一个循环的问题请问大家!!!!
stream : tfilestream;
x : real;
begin
stream := tfilestream.create(filename, "r+b");
x := stream.readreal...记不清楚了,自己看看
end;
R4 : single ;
Begin
IO_Unit := FileCreate( FileName_s ); //临时文件
Lin_IO := FileOpen(FileName , fmShareDenyWrite); // 原文件
: :
FileRead(Lin_IO , R4 , 4) ; // 读入数据
// 对R4数据进行处理
: :
FileWrite(IO_Unit , R4 , 4) ; // 写入数据到临时文件中 FileClose( IO_Unit ) ; // 将临时文件内容考到原文件中
// 也可在一个文件中进行处理
FileRead(Lin_IO , R4 , 4) ; //定位到指定位置读入数据
// 对R4数据进行处理
: :
FileSeek(Lin_IO , ??? , ???) ;//返回到期读入数据处
FileWrite(Lin_IO , R4 , 4) ; //写入数据
YFLK的方法可以,不过就是读出来的数据不对,
var
I: Integer;
P: PChar;
begin
SetLength(Result, Length(AText));
P := PChar(Result);
for I := Length(AText) downto 1 do
begin
P^ := AText[I];
Inc(P);
end;
end;
//*)function HexToStr(mHex: string): string;
var
I: Integer;
begin
Result := '';
for I := 1 to Length(mHex) div 2 do
Result := Result + Chr(StrToIntDef('$' + Copy(mHex, I * 2 - 1, 2), 0));
end; { HexToStr }function HexToSingle(mHex: string): Single;
var
S: string;
begin
S := ReverseString(HexToStr(mHex));
Move(S[1], Result, 4);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
s:string;begin
s:=edit5.text;
edit4.Text := FormatFloat('#.0000', HexToSingle(s));
end;不过得到的结果好像也不正确,是正确结果的一半,
那位高手能给解释一下?
关键是对浮点的认识!
----------------------
《CSDN论坛新助手 CSDN's forum Explorer》
1、更快速的浏览
2、更方便地保存
3、更快捷的收/发短信
下载地址:http://www.seeyou.com.cn/CoolSlob/CSDNExplorer.exe
更多说明:http://community.csdn.net/Expert/TopicView.asp?id=3255966
但用FileSeek后一定要保存文件当前的定位指针,以方便重新返回此处,
对Binary数据文件的读写,必须知道数据在文件中的排列格式,对于4字节的数据,用2字节或8字节长度的变量读取一定是错的,而4字节整型值,用实型变量读取也会得到错误的结果。
应注意变量的使用:
用FileRead(Lin_IO , R4 , 4) ; // 读入实型数据
用FileRead(Lin_IO , R8 , 8) ; // 读入双精度数据
用FileRead(Lin_IO , I4 , 4) ; // 读入长整型数据
用FileRead(Lin_IO , I2 , 2) ; // 读入短整型数据
用FileRead(Lin_IO , I1 , 1) ; // 读入单字节数据
用FileRead(Lin_IO , Sn , n) ; // 读入n字节字符串