【问题标题】:Nested Loop, VBS and Random Numbers嵌套循环、VBS 和随机数
【发布时间】:2012-01-10 08:51:16
【问题描述】:

我正在编写一些 vbs 代码,并且我希望能够为 WAIT SECONDS 传递一个随机数,同时遍历我的一个 CSV 文件,到目前为止我有这个

Dim rn
rn = 50 + cint(rnd()*11)
iret = iim1.iimSet("mynumber", Cstr(rn)) 

dim intLoop
intLoop = 1
Do Until intLoop = 28
   i = iim1.iimSET("line", CStr(intLoop))
   i = iim1.iimPLAY(mypath & "deletemelater2.iim")
   intLoop = intLoop + 1
Loop

发生的情况是,这只会为第一个实例创建一个数字,然后 intLoop 的下一个循环不会收到任何数字,我相信这需要一个嵌套循环,但不知道如何继续,如果有人可以提供帮助的话感激不尽!!,

我现在有了这个,

Dim rn
rn = 50 + cint(rnd()*11)
iret = iim1.iimSet("line2", Cstr(rn)) 

dim intLoop, outLoop
intLoop = 1
outLoop = 1
Do Until intLoop = 28 AND outLoop = 28
   i = iim1.iimSET("line", CStr(intLoop))
   i = iim1.iimPLAY(mypath & "deletemelater2.iim")
   intLoop = intLoop + 1
   rn = iim1.iimSET("line2", CStr(rn))
   rn = iim1.iimPLAY(mypath & "deletemelater2.iim")
   outLoop = outLoop + 1

但它仍然无法正常工作,谁能告诉我我做错了什么?

【问题讨论】:

  • 不确定我是否正确地遵循了这一点,但这不是将随机数部分移动 inside 循环的情况吗?
  • 完全正确。随机数只生成一次。它需要在每次迭代时通过在循环内移动代码来生成。
  • 嗨,我现在有了这个,Dim rn rn = 50 + cint(rnd()*11) iret = iim1.iimSet("line2", Cstr(rn)) dim intLoop, outLoop intLoop = 1 outLoop = 1 执行直到 intLoop = 28 AND outLoop = 28 i = iim1.iimSET("line", CStr(intLoop)) i = iim1.iimPLAY(mypath & "deletemelater2.iim") intLoop = intLoop + 1 rn = iim1。 iimSET("line2", CStr(rn)) rn = iim1.iimPLAY(mypath & "deletemelater2.iim") outLoop = outLoop + 1 Loop,但还是不能正常工作,谁能帮忙?

标签: loops random vbscript nested imacros


【解决方案1】:

您的第二个示例可能由于两个原因不起作用。

  1. 您每次都使用相同的随机数。
  2. 您现在调用 iimPLAY 的次数是以前的两倍。

我会将您的原始代码更改如下:

Dim rn
dim intLoop

For intLoop = 1 to 27
   rn = 50 + cint(rnd()*11)
   iret = iim1.iimSet("mynumber", Cstr(rn)) 
   i = iim1.iimSET("line", CStr(intLoop))
   i = iim1.iimPLAY(mypath & "deletemelater2.iim")
Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2019-09-24
    • 1970-01-01
    • 2013-09-22
    • 2014-09-19
    • 2015-11-10
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多