如何让FileReadLine去调用ARRAY内的条件
各位大侠目前是这样子,我想先定义一些字串,然後让FileReadLine去检查文档是否有这些字串存在,达到文档格式的判断。因为有时候会收到的PDF文档,实际上是DOC(透过笔记本看原始码得知),所以想试着作一个工具来判断文档类型。(当然是以比较常见的格式)
目前我的代码如下,但ARRAY的部分不知道该怎么写,请各位大侠帮帮忙,或者我的思路根本错误,也请赐知。
#include <array.au3>
Local $avArray
$avArray = "PDF"
$avArray = "WORD"
$avArray = "EXCEL"
$avArray = "TIF"
$fpd = FileOpenDialog("", "", "(*.*)")
$file = FileOpen($fpd, 0)
If $file = -1 Then
MsgBox(0, "error", "cancel")
Exit
EndIf
While 1
$line = FileReadLine($file)
If @error Then ExitLoop
Local $iKeyIndex = _ArraySearch($avArray, $line); 这里我想不出怎么写
If Not @error Then
MsgBox(0, 'Entry found', ' Index: ' & $avArray[$iKeyIndex])
Else
MsgBox(0, 'Entry Not found', ' Error: ' & @error)
EndIf
Exit
WEnd
FileClose($file)
回复 1# CCM
楼主有试过用记事本看WORD格式的文件一定会有DOC的字符?? 回复 1# CCM
我看了半天楞是没看明白你的意思,判断文件的类型不是看文件名的后缀就可以了吗?
你直接读取文件?
我不是很懂,看也没有人回答你,所以问问 回复 3# love5173
不是的,文件后缀只是表面而已,甚至,文件名跟文件内容本身没有关系(所以,改变文件名不会改变文件的MD5)
楼主已经说了,发来的一个"AU3代码大全.PDF",它可能是个DOC格式的文件~~ 直接下载个斯托夫文件格式分析器得了,自己写也不能是这样识别啊,至少应该是判断文件头格式吧 分析文件头无疑是最正确的方式,不过有一个投机取巧的办法,不用管文件名,shellexecute系统就给匹配了 回复 4# annybaby
谢谢您的科普,你可以让楼主开一个像魔兽世界安装包那样的文件试试看! 用循环就会不停读取行并进行判断直到文尾,感觉不需要,判断只要一次就行。
文件第一行,可能包含了全部文件头或文件头部分,如果能找出这四种格式文件的第一行所特有的字符串,就可以判断出文件格式。这里的判断用StringInStr()函数更合适。 回复 4# annybaby
是否真有个“AU3代码大全.PDF”,求下载 回复 9# xiaowo
汉化包里几千个例子及UDF函数都看过了??理解了??
没有?? 回复 10# annybaby
{:face (396):}原来你指的是介个啊…… 回复 11# xiaowo
我没有指什么~~
只是想说,手中有的都不看,却去到处寻一些自己都不知道自己会不会用到的东西,有意思吗??? 回复xiaowo
我没有指什么~~
只是想说,手中有的都不看,却去到处寻一些自己都不知道自己会不会用 ...
annybaby 发表于 2013-1-6 11:16 http://www.autoitx.com/images/common/back.gif
兄弟此言差矣,学无止境啊,何况AU3可以做的事很多,我们通常只对其中一部分应用感兴趣,希望在感兴趣的方面有更深入的学习 回复 13# xiaowo
请问"差"在哪里了??我什么时候说过"学有止境"?不必去学习??或者"AU3只能用来安装软件"这类的话(事实上,我从来没有使用AU3来安装过一个软件~~)
退一亿步来讲,如果只对其中一部分应用感兴趣,就直接找这部分的资料,而不是在"代码大全"中找~~ 回复xiaowo
请问"差"在哪里了??我什么时候说过"学有止境"?不必去学习??或者"AU3只能用来安装软件"这类 ...
annybaby 发表于 2013-1-6 16:02 http://www.autoitx.com/images/common/back.gif
失之毫厘,差之千里。“却去到处寻一些自己都不知道自己会不会用到的东西”,不知道自己会不会用到,同样也不知道自己什么时候会用到,此为差也。“大全”虽大虽全,但大、全不代表滥或无用,并且即为大为全,必有能用之码,必有我能取之处,故而求之:)
页:
[1]
2