各位路过的高手帮帮忙,如何读取2进制流文件?
如何用delhpi读取一个2进制流文件(*.dat),能以16进制读出最好!各位路过的高手帮帮忙.急急急!!!!先谢了! 问题点数:50、回复次数:3Top
1 楼HeLiang7(阿亮)回复于 2005-04-04 17:54:17 得分 50
用无类型文件就可以了:
对无类型文件数据的读写操作就可以利用数据块实现。可以利用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中的内容进行分析就好了。Top
2 楼chinasu2001(箜)回复于 2005-04-04 18:07:28 得分 0
HeLiang7(阿亮) Buffer中的内容还是一个2进制的吗?能否读成16进制的呢?如果这个*.dat很大,并且是实时进为数据,同时里面的数据不一定全是我想要的呢,那要如何解决?Top
3 楼chinasu2001(箜)回复于 2005-04-04 18:10:37 得分 0
*.dat为实时传送数据进来的文件!Top




