找回密码
 加入
搜索
查看: 3005|回复: 17

一个关于循环的语句的问题 小弟刚学没多长时间

  [复制链接]
发表于 2010-1-7 04:12:01 | 显示全部楼层 |阅读模式
本帖最后由 linkuncool 于 2010-1-7 22:44 编辑

For $i = 0 To $n Step 1
        GUICtrlSetState ($soft[$i],$GUI_DISABLE)
Next

跟下面这句有区别吗?

For $i = 0 To $n - 1
        GUICtrlSetState ($soft[$i],$GUI_DISABLE)
Next

第一句执行错误提示 Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
GUICtrlSetState ($soft[$i],$GUI_DISABLE)
GUICtrlSetState (^ ERROR

大概说$soft[$i]含有不正确标识数字 嗨 词比较专业不知道怎么表达  英语勉勉强强还可以
而第一句执行却没发生错误  我是个新手
很多东西 我能解决 尽量不问 就查资料
可帮助文档里 是我找不到 还是没有啊  
老手指点下
 楼主| 发表于 2010-1-7 04:22:11 | 显示全部楼层
在线等啊  急着 写一个小程序  用来自动安装多个软件 跟系统优化   
在装机时代替重复性的动作  虽然网络有自动安装软件 系统优化光盘  但是还是用自己写的程序感觉好
也可以时常更新软件 对吧  大家都有同感吧
 楼主| 发表于 2010-1-7 04:28:30 | 显示全部楼层
在线等啊  急着 写一个小程序  用来自动安装多个软件 跟系统优化   
在装机时代替重复性的动作  虽然网络有自动安装软件 系统优化光盘  但是还是用自己写的程序感觉好
也可以时常更新软件 对吧  大家都有同感吧
发表于 2010-1-7 04:36:14 | 显示全部楼层
第一句执行错误提示 Array variable has incorrect number of subscripts or subscript dimension
...
而第一句执行却没发生错误

到底哪个是错误?我晕了
发表于 2010-1-7 04:42:14 | 显示全部楼层
看形势一定是第一段出错了,数组的元素数量超出范围了,第二段-1才正确
 楼主| 发表于 2010-1-7 05:35:05 | 显示全部楼层
你看下吧
等等  我上代码
 楼主| 发表于 2010-1-7 05:36:03 | 显示全部楼层
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;编译头文件

Opt ("GUICloseOnESC",0)  ;脚本运行时按ESC不退出
FileInstall ("back.jpg",@TempDir & "\back.jpg",1)
FileInstall ("config.xml",@TempDir & "\config.xml",1)
FileInstall ("KuGoo.xml",@TempDir & "\KuGoo.xml",1)
FileInstall ("show.IE8.icon.bat",@TempDir & "\show.IE8.icon.bat",1)
FileInstall ("show.IE8.icon.reg",@TempDir & "\show.IE8.icon.reg",1)
FileInstall ("酷狗音乐文件夹.lnk",@TempDir & "\酷狗音乐文件夹.lnk",1)
FileInstall ("酷我音乐文件夹.lnk",@TempDir & "\酷我音乐文件夹.lnk",1)
;把附加文件编译进脚本

Dim $os , $int
$os=RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName")
If 0<>StringInStr ($os,"Windows XP") Then
        $os="Windows XP"
       
ElseIf 0<>StringInStr ($os,"Windows 7") Then
        $os="Windows 7"
       
ElseIf 0<>StringInStr ($os,"Windows Vista") Then
        $os="Windows Vista"
Else
        $flag=MsgBox ("36","软件安装提示:","无法检测到您正在使用的系统版本,可能会出现未知错误,是否继续?")
        If $flag=7 then
        Exit
        EndIf
EndIf
;判断操作系统

Const $n=12 , $b=4
Dim $installpatch , $softname[$n] , $soft[$n] , $radio[$b]
$softname[1]="FLASH PLAYER"
$softname[2]="WinRAR 3.91 beta 1"
$softname[3]="腾讯QQ2009 SP5"
$softname[4]="QQGame2009游戏大厅"
$softname[5]="酷狗音乐2010"
$softname[6]="酷我音乐盒 2009"
$softname[7]="PPS影音"
$softname[8]="风行 2.0.0.29 Beta"
$softname[9]="暴风影音2009"
$softname[10]="搜狗拼音输入法 4.3正式版"
$softname[11]="迅雷 5"
;定义变量 软件安装目录 数量

GUICreate ("街头秀装机程序",600,500);创建主程序界面
GUICtrlCreatePic ("back.jpg",0,0,600,100);设置LOGO图片

$group1=GUICtrlCreateGroup ("软件选择",10,110,580,180)
;为复选框创建一个控件组
$soft[1]=GUICtrlCreateCheckbox ($softname[1],15,125,160,20)
$soft[2]=GUICtrlCreateCheckbox ($softname[2],205,125,160,20)
$soft[3]=GUICtrlCreateCheckbox ($softname[3],395,125,160,20)
$soft[4]=GUICtrlCreateCheckbox ($softname[4],15,145,160,20)
$soft[5]=GUICtrlCreateCheckbox ($softname[5],205,145,160,20)
$soft[6]=GUICtrlCreateCheckbox ($softname[6],395,145,160,20)
$soft[7]=GUICtrlCreateCheckbox ($softname[7],15,165,160,20)
$soft[8]=GUICtrlCreateCheckbox ($softname[8],205,165,160,20)
$soft[9]=GUICtrlCreateCheckbox ($softname[9],395,165,160,20)
$soft[10]=GUICtrlCreateCheckbox ($softname[10],15,185,160,20)
$soft[11]=GUICtrlCreateCheckbox ($softname[11],205,185,160,20)

For $i = 0 To $n - 1
        GUICtrlSetState ($soft[$i],$GUI_DISABLE)
Next
 楼主| 发表于 2010-1-7 05:39:22 | 显示全部楼层
我也晕的 搞的脑袋大  
写错了  第一句执行错误

第二句  OK 成功  
可以帮助文档里 没有 - 这个的用法 的  是不是老版本的啊
 楼主| 发表于 2010-1-7 05:41:33 | 显示全部楼层
是版主啊 这么晚还没睡啊
 楼主| 发表于 2010-1-7 06:06:09 | 显示全部楼层
晕死了帖子 写完自己也没看下
写错了一个字 搞的老手浪费时间  
提问的艺术啊  说时候我自己看到问题描述的乱七八糟的帖子也讨厌
 楼主| 发表于 2010-1-7 06:07:18 | 显示全部楼层
实话  会 打成时候
真的要睡一觉的   脑子有点不清醒  
NO NO NO
发表于 2010-1-7 13:45:29 | 显示全部楼层
+-*/ 这个不用解释吧…… - 就是减……
 楼主| 发表于 2010-1-7 21:37:05 | 显示全部楼层
但是常量 $n 我赋予的值是12  
for 循环从 0 开始 如果步进值为 -1   
这样的循环语句在AU3帮助文档里是不会被执行的
A For loop will execute zero times if:
   start > stop and step > 0, or
   start < stop and step is negative

FOR循环会被执行0次假如:
初始值>终值 而且 步进值>0 ,
发表于 2010-1-7 21:38:59 | 显示全部楼层
不是 step -1
是 $n - 1 也就是 11
 楼主| 发表于 2010-1-7 21:40:32 | 显示全部楼层
接上面的 按错键了
或者 初始值 <终值 而且步进值是负数

我正好属于第二种情况   
$=12
For $i = 0 To $n - 1
        GUICtrlSetState ($soft[$i],$GUI_DISABLE)
Next

应该来说不会 被执行的  

就算被执行 可  怎么 缺了个 Step 啊  
然道 - 这个就代表 step 吗
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 00:39 , Processed in 0.090684 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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