如何判断一个文件为文本型文件?

wafeijian 2005-03-29 09:31:11
如何判断一个文件为文本型文件?
...全文
254 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
popcom 2005-04-08
  • 打赏
  • 举报
回复
能不能用文件的扩展名去判断。
wafeijian 2005-04-07
  • 打赏
  • 举报
回复
再顶一下.
softbugg 2005-04-06
  • 打赏
  • 举报
回复
判断这个有什么用??
wafeijian 2005-04-06
  • 打赏
  • 举报
回复
顶一下.
ehom 2005-04-03
  • 打赏
  • 举报
回复
不可能判断的了,除非你认为只有ANSI编码的才算“文本文件”
chogo 2005-04-02
  • 打赏
  • 举报
回复
回复人: myy() ( ) 信誉:100 2005-03-30 08:23:00 得分: 0


二进制文件、文本文件没有绝对的界限,只能用程序去“猜”。

--------------------------------------------
同意.如果你知道某二进制文件特有的字串,倒是可以做得更精确一点
wafeijian 2005-04-01
  • 打赏
  • 举报
回复
再顶一下!
wafeijian 2005-03-31
  • 打赏
  • 举报
回复
自己顶一下!
wafeijian 2005-03-30
  • 打赏
  • 举报
回复
还有更好的办法吗?
myy 2005-03-30
  • 打赏
  • 举报
回复
二进制文件、文本文件没有绝对的界限,只能用程序去“猜”。
YFLK 2005-03-30
  • 打赏
  • 举报
回复
应该是所有非可见字符,如果按上面的方法,对于全是Binary的浮点数据则可能得出错误的结果
比如读入一段数据(如256个字符),然后统计可见字符的比例,再进行判断。
肥仔胧 2005-03-29
  • 打赏
  • 举报
回复
邦你顶一下
flyinwuhan 2005-03-29
  • 打赏
  • 举报
回复
var
fm : TFileStream;
bt : byte;
i,j : integer;

fm := TFileStream.create( 'c:\1.xxx', fmOpenread);
j:=0;
for i:=1 to 512 do
begin
fm.position := random( fm.size-1);
fm.read( bt, sizeof(bt);
if bt=0 then inc(j);
end;

if j>8 then 二进制文件 else 文本文件
wafeijian 2005-03-29
  • 打赏
  • 举报
回复
TO: flyinwuhan(制怒·三思而后行)

能否具体一点呢, 谢谢!
flyinwuhan 2005-03-29
  • 打赏
  • 举报
回复
以二进制方式打开,若存在很多0则是二进制文件,否则是文本文件。

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧