一个很大的文件(250M)中,某一个字节开始连续的保存的是32位浮点数据,
请问前辈们:如何读取 这些数据,并保存得到文本中?
如何把在文本中修改过的数据重新存储到这个很大的文件中(替换原来的32位浮点数据)
谢谢啦!
请问前辈们:如何读取 这些数据,并保存得到文本中?
如何把在文本中修改过的数据重新存储到这个很大的文件中(替换原来的32位浮点数据)
谢谢啦!
解决方案 »
- dbgrideh里datetimepicker的应用
- 请问boolean变量默认的初值是什么?
- combobox添加下拉列表?
- delphi quickrep.preview时怎么样把上面的打印按钮去掉
- 请教几个问题,呵呵c/s编程的
- 急急我是初学者请问:用delphi如何写控件,在delphi中怎样用ListView,最好给一些例程看看。
- 控制安装过后,怎么调用呢。偶以前从没有用过。(在线等待!)
- 请问怎样在delph中实现用xsd对xml的内容进行校验
- 请问,如何在控制台程序中使用定时器控件的ontime事件?
- 很多人都很懒给分!强烈抗议!!!!!!!!!!
- 请教一个自动编号的问题
- 一个循环的问题请问大家!!!!
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字节字符串