怎样判断一个文件是二进制文件??? ( 积分: 50 )

  • 主题发起人 主题发起人 playboy
  • 开始时间 开始时间
P

playboy

Unregistered / Unconfirmed
GUEST, unregistred user!
在线等,急。谢谢!
 
在线等,急。谢谢!
 
我有个笨办法,就是用TStringList读取里面的内容,然后和原始文件比较大小,因为用TStringList对二进制文件只能读取一部分(遇到#0就结束了),对小问题可以这样,供参考


另外转大虾的话
http://www.delphibbs.com/delphibbs/modifyl.asp?lid=2337869
如果存在ASCII<32并且<>7(响铃),9(tab),10(换行),13(回车)的,就可以认为是二进制文件
 
var
aa: TMemoryStream;
i: Integer;
ab: array[0..0] of Byte;
begin
aa := TMemoryStream.Create;
try
aa.Loadfromfile('aaa.txt');
for i := 0 to aa.Size - 1 do
begin
aa.Position := i;
aa.Read(ab, 1);
if ab[0] > 128 then
begin
ShowMessage('bin文件');
Exit;
end;
end;
ShowMessage('txt文件');
finally
aa.Free;
end;
end;
 
后退
顶部