zhurongfei 发表于 2011-4-10 14:36:19

帮我看段代码,运行结果怎么出现两位数比一位数小的结果【已解决】

本帖最后由 zhurongfei 于 2011-4-12 08:58 编辑

是这样的,我要获取一个文件夹里所有的文件,求出文件夹名字最小的一个,当让这些文件夹都是数字命名的,比如从1按顺序到20,这20个文件夹,可以得出最小的是1,但是如果中间删除几个文件夹后,最小的文件夹就成了两位数的,不知道我表达的是否清楚,我是新手。下面是代码
$min=9999
$minimum=9999
$Chdir="D:\DOWNLOAD\2011\"   
$search = FileFindFirstFile($Chdir&"*.*")
If $search = -1 Then
        MsgBox(0, "Error", "No files/directories matched the search pattern")
        Exit
EndIf
While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop
      MsgBox(4096, "File:", $file)
   if $min > $file then $minimum =$file
   
    $min=$file
   

WEnd
MsgBox(4096, "File:", $minimum)
FileClose($search)

guland 发表于 2011-4-10 15:26:23

回复 1# zhurongfei


    大概看了下,$min=9999
$minimum=9999      <======之前已经定义 $minimum=9999
.......此处代码忽略.......
   if $min > $file then $minimum =$file   
上面是判断如果$min > $file 那么$minimum =$file
根据字面的意思可以理解为如果$min < $file 那么$minimum的值还是9999
所以到下面会出错,不知道你看明白了吗?
   
    $min=$file
   
MsgBox(4096, "File:", $minimum)

zhurongfei 发表于 2011-4-10 15:37:06

谢谢你的回复:
我的意思是:开始min没有数值,我是求最小的值,所以我开始先给个较大的值,当循环一圈后min就有值了,可以和下个数比较了,保留较小的数,我开始从1到20建立20个文件夹,都没有问题,可是中间删除几个就有问题了,有点绕,我在仔细想想!
页: [1]
查看完整版本: 帮我看段代码,运行结果怎么出现两位数比一位数小的结果【已解决】