双重循环的问题【已解决】
本帖最后由 whitehead 于 2012-4-8 17:23 编辑我有一个程序,其中一段要完成以下任务:
我设定第一循环工作最多20次,该循环每一步最多从 $i=0 to 9 用不同地址从搜索引擎读取内容10次,而每次从搜索引擎读取内容使用的地址是从编辑框1读到的地址尾部添加一个字符$i。
倘若某一次匹配成功,就将这次使用的地址写回编辑框1,然后进入下一步并重复以上过程(不同的是编辑框1的内容改变了)
倘若某一步,10次从搜索引擎读取的内容都无法匹配,则整个循环结束。
这儿有两个不确定:
1、无法预计每一步从搜索引擎读取内容几次(但知道最多10次)
2、无法预计整个循环运行多少步结束(但知道最多20步)
以下程序片段有问题,但我不知错在何处,请大侠指点。
Dim $I,$J, $J=1,$i=0
For $J=1 to 20;第一循环
$URL=GUICtrlRead($Edit1);从编辑框1读地址数据
For $i=0 to 9 ;第二循环,
$HTML=_SEND ( $URL&$i) ;以上地址配上一个数字后从搜索引擎读取内容
$Patern=GUICtrlRead($Edit2) ;从编辑框2读正则表达式
$TMP=STRINGREGEXP($HTML,$Patern,0);用上述正则表达式与以上网页内容匹配
If $TMP=1 Then
GUICtrlSetData($Edit1, $URL&$i);将匹配成功的$i添到开始读入的地址后写入编辑框1
ExitLoop ;匹配成功就跳出$J时的第二循环进入$J+1时的第二循环
Sleep(10001) ;暂停10秒
ElseIf $i=9 AND $TMP=0 Then
ExitLoop;如果$J时的第二循环运行结束但都不匹配,则第一循环或程序结束
ENDIF
Next
Next 回复 3# 处男
处男兄可能误解我的问题了。
我的问题是两个循环何时结束都需要判断。我写的代码应该是错的,但我不知错在何处。 For 1 to 20;第一循环
$URL=GUICtrlRead($Edit1);从编辑框1读地址数据
For 1 to 10;第二循环,
$HTML=_SEND ( $URL&$i) ;以上地址配上一个数字后从搜索引擎读取内容
$Patern=GUICtrlRead($Edit2) ;从编辑框2读正则表达式
$TMP=STRINGREGEXP($HTML,$Patern,0);用上述正则表达式与以上网页内容匹配
If $TMP=1 Then
GUICtrlSetData($Edit1, $URL&$i);将匹配成功的$i添到开始读入的地址后写入编辑框1
ExitLoop ;匹配成功就跳出$J时的第二循环进入$J+1时的第二循环
Next
Next 纯粹靠猜Dim $I, $J
For $J = 1 To 20 ;第一循环
$URL = GUICtrlRead($Edit1) ;从编辑框1读地址数据
For $I = 0 To 9 ;第二循环
$HTML = _send($URL & $I) ;以上地址配上一个数字后从搜索引擎读取内容
$Patern = GUICtrlRead($Edit2) ;从编辑框2读正则表达式
$TMP = StringRegExp($HTML, $Patern) ;用上述正则表达式与以上网页内容匹配
If $TMP Then
GUICtrlSetData($Edit1, $URL & $I) ;将匹配成功的$i添到开始读入的地址后写入编辑框1
Sleep(10000) ;暂停10秒
ExitLoop ;匹配成功就跳出$J时的第二循环进入$J + 1时的第二循环
ElseIf $I = 9 Then
ExitLoop 2 ;如果$J时的第二循环运行结束但都不匹配,则第一循环或程序结束
EndIf
Next
Next 谢谢版主,等我测试成功再改标题 成功,再次感谢
页:
[1]