A
asdfzxcv88
Unregistered / Unconfirmed
GUEST, unregistred user!
已知一扩展名为dat的文件(里面文件是二进制,且未加密),数据长度都是4byte,如第一个数据元素表示商品名,第二个数据元素表示商品产地,第三个数据元素表示商品价格,第四个数据元素表示商品利润……,数据元素比较多,问如何读出该dat的文件里的数据,我曾经用以下的代码读dat文件,但只能读不是二进制的文件(下面的代码感觉好象有错误,我对流参考了不少文件都没有搞明白),请问我应当怎样读取该文件,请详细给出代码,谢谢!
procedure TForm2.Button1Click(Sender: TObject);
var
str:string;
fs:TFileStream;
vLen:Integer;
begin
try
fs:=TFileStream.Create('d:/abc.dat',fmOpenRead);
SetLength(str,100);//长度 //SetLength给字符串变量或开放性数组指定一个长度。
fs.ReadBuffer(str[1],4); //ReadBuffer从流中将4个字节复制到str[1] 中, 并将流的当前指针向后移动4个字节。
Edit1.Text :=str;
fs.ReadBuffer(str[1],10);
RichEdit1.Text :=str;
fs.ReadBuffer(str[1],4);
edit2.text:= str;
finally
fs.free;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
str:string;
fs:TFileStream;
vLen:Integer;
begin
try
fs:=TFileStream.Create('d:/abc.dat',fmOpenRead);
SetLength(str,100);//长度 //SetLength给字符串变量或开放性数组指定一个长度。
fs.ReadBuffer(str[1],4); //ReadBuffer从流中将4个字节复制到str[1] 中, 并将流的当前指针向后移动4个字节。
Edit1.Text :=str;
fs.ReadBuffer(str[1],10);
RichEdit1.Text :=str;
fs.ReadBuffer(str[1],4);
edit2.text:= str;
finally
fs.free;
end;
end;