xms77 发表于 2012-11-17 18:27:27

【已解决】用什么方法可以简化这些代码的写法?

本帖最后由 xms77 于 2012-11-17 20:34 编辑

以下代码,如何简化?

$Pidmsgb1 = _CoProc("_SubprocessGetMGL001HtmlOfTSPC")
$Pidmsgb2 = _CoProc("_SubprocessGetMGL002HtmlOfTSPC")
$Pidmsgb3 = _CoProc("_SubprocessGetMGL003HtmlOfTSPC")
$Pidmsgb4 = _CoProc("_SubprocessGetMGL004HtmlOfTSPC")
$Pidmsgb5 = _CoProc("_SubprocessGetMGL005HtmlOfTSPC")
$Pidmsgb6 = _CoProc("_SubprocessGetMGL006HtmlOfTSPC")
$Pidmsgb7 = _CoProc("_SubprocessGetMGL007HtmlOfTSPC")
$Pidmsgb8 = _CoProc("_SubprocessGetMGL008HtmlOfTSPC")
$Pidmsgb9 = _CoProc("_SubprocessGetMGL009HtmlOfTSPC")
$Pidmsgb10 = _CoProc("_SubprocessGetMGL010HtmlOfTSPC")

小影 发表于 2012-11-17 18:50:19

Local $Pidmsgb1 =1
Local $Pidmsgb2 = 1
Local $Pidmsgb3 = 1

For $i = 1 To 3
        MsgBox(0,"",Eval("Pidmsgb" & $i) )
Next
        希望对你有用!

afan 发表于 2012-11-17 18:58:12

本帖最后由 afan 于 2012-11-17 19:36 编辑

For $i = 1 To 10
        Assign('Pidmsgb' & $1, _CoProc('_SubprocessGetMGL' & StringFormat('%03s', $i) & 'HtmlOfTSPC'))
Next

xms77 发表于 2012-11-17 19:07:15

本帖最后由 xms77 于 2012-11-17 19:09 编辑

回复 2# 小影
谢谢,用你的方法测试了一下,Eval对变量名有用,好像对函数名无效
#include <coproc.au3>

For $i = 1 To 3
      _CoProc(Eval("_Pidmsgb" & $i))               
Next
      
Func _pidmsgb1()
        MsgBox(0,0,"1")
EndFunc

Func _pidmsgb2()
        MsgBox(0,0,"2")
EndFunc

Func _pidmsgb3()
        MsgBox(0,0,"3")
EndFunc

netegg 发表于 2012-11-17 19:21:58

本帖最后由 netegg 于 2012-11-17 19:23 编辑

Run(@AutoItExe & ' /AutoIt3ExecuteLine _CoProc("_SubprocessGetMGL0' & stringformat('%02d', $i)& 'HtmlOfTSPC")')

不过不知道行不行,_coproc那个函数本来问题就不小

xms77 发表于 2012-11-17 20:30:47

回复 3# afan
多谢A版,测试成功!

xms77 发表于 2012-11-17 20:31:35

回复 5# netegg
多谢蛋哥,测试A版的成功了。
页: [1]
查看完整版本: 【已解决】用什么方法可以简化这些代码的写法?