如何用delhpi读取一个2进制流文件(*.dat),能以16进制读出最好!各位路过的高手帮帮忙.急急急!!!!先谢了!

解决方案 »

  1.   

    用无类型文件就可以了:
    对无类型文件数据的读写操作就可以利用数据块实现。可以利用B l o c k R e a d ( )从无类型文件
    读出数据,也可以利用B l o c k Wr i t e ( )向无类型文件写入数据。
    B l o c k R e a d ( )和B l o c k Wr i t e ( )都至少有三个参数。第一个是无类型文件变量f;第二个是包含写入或
    读出的数据的缓冲区变量B u f;C o u n t则用来指定本次操作读写记录的数量。R e s u l t是一个可选参数,
    当进行读操作时,它返回实际读取的记录数目;当进行写操作时,它返回实际写入的记录数目。如果
    R e s u l t和C o u n t数值不一致则可能是磁盘空间不足。
    var
      UnTypedFile: File;
      Buffer: array[0..128] of byte;
      NumRecsRead: Integer;
    begin 
      AssignFile(UnTypedFile, 'SOMEFILE.DAT');
      Reset(UnTypedFile);
      try
        BlockRead(UnTypedFile, Buffer, 1, NumRecsRead);
      finally
        CloseFile(UnTypedFile);
      end;
    end;
    然后对Buffer中的内容进行分析就好了。
      

  2.   

    HeLiang7(阿亮)  Buffer中的内容还是一个2进制的吗?能否读成16进制的呢?如果这个*.dat很大,并且是实时进为数据,同时里面的数据不一定全是我想要的呢,那要如何解决?
      

  3.   

    *.dat为实时传送数据进来的文件!