Вложенный цикл, VBS и случайные числа - PullRequest
1 голос
/ 10 января 2012

Я пишу некоторый код 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

, но оно все еще не работает должным образом, кто-нибудь может посоветовать мне, что я делаю неправильно?

1 Ответ

1 голос
/ 20 января 2012

Ваш второй пример, вероятно, не работает по двум причинам.

  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
...