找回密码
 加入
搜索
查看: 1543|回复: 1

非数组变量错误问题

  [复制链接]
发表于 2010-1-12 12:52:26 | 显示全部楼层 |阅读模式
本帖最后由 supersp 于 2010-1-12 15:08 编辑

一位同事有大量PDF跟JPG文件,要按创建日期的顺序打印,而FileFindFirstFile() 好像不支持多个关键字,并且搜索顺序未知,因此调用CMD,写了下面的代码

在XP下正常运行,但2000下却提示子操作使用了非数组变量。

因为无法在同事的2000系统下调试,只能本机检查代码,发现可能是 StringRegExp() 返回的数组参数问题,问题代码如下。

有没有一种方法,得到按日期排序后的文件组,并且PDF跟JPG是夹杂的。


代码如下:
#include <String.au3>
#include <Constants.au3>

;按日期排序文件并读入数组
Local $foo = Run(@ComSpec & ' /c dir /-c /o:d /t:c| findstr ".jpg .jpeg .pdf 个文件"', $dir, @SW_HIDE, $STDOUT_CHILD)
Global $cow
While 1
        $line = StdoutRead($foo) ;读取CMD STDOUT
        If @error Then ExitLoop
        If $line <> "" Then
                $cow = StringSplit($line, @CRLF, 1) ;按行分解到数组
        EndIf
WEnd


;提取文件名,文件大小
Global $size
Global $sarry = StringRegExp($cow[$cow[0] - 1], '\h+\d+\h\S+\h+(\d+)\h\S+', 1, 1) ;正则提取所有文件总大小
Global $zsize = Number($sarry[0])
For $i = 1 To $cow[0] - 2 Step 1
        $sarry = StringRegExp($cow[$i], '.{1,}\h{1,}(\d{1,})\h{1,}\S{1,}', 1, 1) ;正则提取文件大小
        $size += Number($sarry[0])
        $sarry = StringRegExp($cow[$i], '\h+\d+\h+(\S+)', 1, 1) ;正则提取文件名
        $file = $sarry[0]
        _printpdf($file, $i)
Next
发表于 2010-1-12 14:45:41 | 显示全部楼层
标题模糊|违规,不利于论坛搜索,此主题已暂时关闭。请依照论坛发帖规则修改标题。并于修改合格之后,联系本版版主或管理员打开(务必附上被关闭的帖子链接)。若3日后仍未修改,将移入论坛回收站。若放弃对此主题的修改而重新开贴,将删除新帖并从重处罚。

附:论坛发帖规则 http://www.autoitx.com/forum.php?mod=viewthread&tid=10945
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-29 01:08 , Processed in 0.072882 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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