文件内部数据结构:                          长度:  10字节  
u_long            ulId;  
u_long            ulSerialNo;  
u_short            usDataCheckSum;              
 
其中:  
1、      u_long  为4字节无符号长整型,  u_short  为2字节无符号短整型  
2、      字节位序为高位在前,  如  整数0x04030201  在文件中实际也是0x04030201  
 
 
如何解析该二进制文件,需要通过字符串或文本方式转换,  请给出例子,谢谢!

解决方案 »

  1.   

    type
      TTempData = packed record
        ulId: DWORD;
        ulSerialNo: DWORD;
        usDataCheckSum: Word;
      end;
    var
      vFileStream: TFileStream;
      vTempData: TTempData;
    begin
      vFileStream := TFileStream.Create('c:\temp\temp.dat', fmOpenRead);
      try
        vFileStream.Read(vTempData, SizeOf(vTempData));
        //print
        Memo1.Lines.Values['ulId'] := IntToStr(vTempData.ulId);
        Memo1.Lines.Values['ulSerialNo'] := IntToStr(vTempData.ulSerialNo);
        Memo1.Lines.Values['usDataCheckSum'] := IntToStr(vTempData.usDataCheckSum);
      finally
        vFileStream.Free;
      end;
    end;
      

  2.   

    zswang(伴水清清)
    通过你的方法还是不好用。该结构体是标准c的