找回密码
 加入
搜索
查看: 8917|回复: 19

[AU3基础] 如何让FileReadLine去调用ARRAY内的条件

 火.. [复制链接]
发表于 2013-1-4 17:01:49 | 显示全部楼层 |阅读模式
各位大侠

目前是这样子,我想先定义一些字串,然後让FileReadLine去检查文档是否有这些字串存在,达到文档格式的判断。因为有时候会收到的PDF文档,实际上是DOC(透过笔记本看原始码得知),所以想试着作一个工具来判断文档类型。(当然是以比较常见的格式)

目前我的代码如下,但ARRAY的部分不知道该怎么写,请各位大侠帮帮忙,或者我的思路根本错误,也请赐知。


#include <array.au3>

Local $avArray[4]

$avArray[0] = "PDF"
$avArray[1] = "WORD"
$avArray[2] = "EXCEL"
$avArray[3] = "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)
发表于 2013-1-4 17:25:24 | 显示全部楼层
回复 1# CCM

楼主有试过用记事本看WORD格式的文件一定会有DOC的字符??
发表于 2013-1-4 17:32:13 | 显示全部楼层
回复 1# CCM

我看了半天楞是没看明白你的意思,判断文件的类型不是看文件名的后缀就可以了吗?
你直接读取文件?
我不是很懂,看也没有人回答你,所以问问
发表于 2013-1-4 17:36:34 | 显示全部楼层
回复 3# love5173

不是的,文件后缀只是表面而已,甚至,文件名跟文件内容本身没有关系(所以,改变文件名不会改变文件的MD5)

楼主已经说了,发来的一个"AU3代码大全.PDF",它可能是个DOC格式的文件~~
发表于 2013-1-4 17:54:25 | 显示全部楼层
直接下载个斯托夫文件格式分析器得了,自己写也不能是这样识别啊,至少应该是判断文件头格式吧
发表于 2013-1-4 18:27:29 | 显示全部楼层
分析文件头无疑是最正确的方式,不过有一个投机取巧的办法,不用管文件名,shellexecute系统就给匹配了
发表于 2013-1-4 20:03:22 | 显示全部楼层
回复 4# annybaby
谢谢您的科普,你可以让楼主开一个像魔兽世界安装包那样的文件试试看!
发表于 2013-1-4 20:24:03 | 显示全部楼层
用循环就会不停读取行并进行判断直到文尾,感觉不需要,判断只要一次就行。
文件第一行,可能包含了全部文件头或文件头部分,如果能找出这四种格式文件的第一行所特有的字符串,就可以判断出文件格式。这里的判断用StringInStr()函数更合适。
发表于 2013-1-5 15:05:36 | 显示全部楼层
回复 4# annybaby


    是否真有个“AU3代码大全.PDF”,求下载
发表于 2013-1-5 16:52:58 | 显示全部楼层
回复 9# xiaowo

汉化包里几千个例子及UDF函数都看过了??理解了??
没有??
发表于 2013-1-6 08:12:40 | 显示全部楼层
回复 10# annybaby


    原来你指的是介个啊……
发表于 2013-1-6 11:16:46 | 显示全部楼层
回复 11# xiaowo


    我没有指什么~~
只是想说,手中有的都不看,却去到处寻一些自己都不知道自己会不会用到的东西,有意思吗???
发表于 2013-1-6 15:05:24 | 显示全部楼层
回复  xiaowo


    我没有指什么~~
只是想说,手中有的都不看,却去到处寻一些自己都不知道自己会不会用 ...
annybaby 发表于 2013-1-6 11:16



    兄弟此言差矣,学无止境啊,何况AU3可以做的事很多,我们通常只对其中一部分应用感兴趣,希望在感兴趣的方面有更深入的学习
发表于 2013-1-6 16:02:59 | 显示全部楼层
回复 13# xiaowo

请问"差"在哪里了??我什么时候说过"学有止境"?不必去学习??或者"AU3只能用来安装软件"这类的话(事实上,我从来没有使用AU3来安装过一个软件~~)
退一亿步来讲,如果只对其中一部分应用感兴趣,就直接找这部分的资料,而不是在"代码大全"中找~~
发表于 2013-1-6 22:00:18 | 显示全部楼层
回复  xiaowo

请问"差"在哪里了??我什么时候说过"学有止境"?不必去学习??或者"AU3只能用来安装软件"这类 ...
annybaby 发表于 2013-1-6 16:02



    失之毫厘,差之千里。“却去到处寻一些自己都不知道自己会不会用到的东西”,不知道自己会不会用到,同样也不知道自己什么时候会用到,此为差也。“大全”虽大虽全,但大、全不代表滥或无用,并且即为大为全,必有能用之码,必有我能取之处,故而求之:)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 09:51 , Processed in 0.082651 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表