当前位置:主页>销售管理软件> 列表

问:怎么判断一个文件是不是文本类型文件. 找进销存表格模板

财务软件版1楼: 很简单,我要写一个程序,找到文本类型的文件比如.txt,.asp,.htm,.html,然后打开它,替换掉某关键字词,本来是想认扩展名,但回头一想,如果有一个找碴的,把一个很大很大的AVI文件改成.txt,那程序不死也残了吧.各位大侠有没有好的办法去识别它.效率要高的.感谢....

2楼: 用try 尝试打开,如果能代开
判断一下里边的字符串 如人事管理软件破解版

3楼: to:lrl1228
如果每个都要去打开,读出字符,效率太低了,碰到大文件也不见得打不开,一打开读到文件流里面,还不要命啊.

4楼: 用TFileStream读入一小块(比如1024字节),然后判断里面是否有非法字符。

5楼: to:dreamisx
请明示,如何才算非法字符.

6楼: 在用Delphi 编程处理文本文件的时候,如果要装载的文件比较大,你可能会想在文件装载过程中提供一个装载进度的提示--那么你就必需自己编写直接通过文件打开/读取函数来装载文件内容的函数。在自己编写文本文件读取函数的时候,你首先会遇到的第一个问题就是:对于给定的一个文件名,怎么知道它所代表磁盘文件的确是文本文件?这里有一个很简单的方法:把给定的那个文件看作是无类型的二进制文件,然后顺序地读出这个文件的每一个字节,如果文件里有一个字节的值等于0,那么这个文件就不是文本文件;反之,如果这个文件中没有一个字节的值是0的话,就可以判定这个文件是文本文件了。这是原理,下面看看在Delphi 中怎样编程来实现它--


function IsTextFile(FileName:string):boolean;
var
Fs:TFileStream;
i,size:integer;
IsTextFile:boolean;
ByteData:Byte;
begin
if FileExists(FileName) then
begin
Fs:=TFileStream.Create(FileName,fmOpenRead);
IsTextFile:=true;
i:=0;
size:=Fs.Size;
While (i begin
Fs.Read(ByteData,1);
IsTextFile:=ByteData<>0;
inc(i)
end;
Fs.Free;
Result:=IsTextFile
end
else
Result:=false
end;

财务软件版7楼: 嘿嘿
hacker兄,看看满意不

8楼: 专门有判断文件格式的,你去找找 PE方面的书看看吧

9楼: to: SiWeiLiuLang

是的,非常感谢提供一个这么酷的函数...效率极高,我判断一个.rmvb的文件100M,整个过程只有几毫秒,强......强.....等你看完这篇感谢,我就给分...

顺便问一句,大富翁给完分以后就看不到贴子,有没有办法通过别的途径给分.

10楼: 1、你发的帖子在浏览器左边‘我的已答问题’,‘我的待答问题’里面可以看到
2、你可以收藏帖子,这个应该知道吧
3、全文检索功能,但大概只能检索2004年6月22日以前的数据
4、如果是精品,还可以收藏到自己浏览器的收藏夹,做个分类
5、给你推荐一个软件:Google的桌面搜索,酷!
6、Hacker兄,给分吧,不客气拉~~~

11楼: 50分全给SiWeiLiuLang了...很少看到这么强的函数,真想多给点.

12楼: 难得Hacker兄说出这么豪气的话来
偷偷说句,如果想另外给分,可以发个帖子叫我去报到哦。
嘿嘿 如进销存表格模板

13楼: :)
呵呵,给偶留点吧,我的这1000多分是一个高人给偶的...
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3319481
这是我前几天写的一篇贴子,有一位高人看了,很是感动,康概给了我1000分..一般情况下我都会去全文检索查以前别人问过的资料....迫不得已才发贴求助...这些分可以帮我在这个Delphi编程道路上活得疼快些,你道行已经很高啦...要分来也用不上,还是留给我慢慢过日子吧...:)