Что нового

Альтернатива sleep() + random

chernobeloe

Новичок
Сообщения
33
Репутация
0
Привет форумчане!
Сразу извиняюсь за название темы, если что не так
попытаюсь здесь все разъяснить, есть файл test.txt вида:
Код:
1__2
3__4
5__6
7__8
9__10
и код, который выводит построчно текст из файла:

Код:
#include <MsgBoxConstants.au3>
#include <File.au3>

Global $sleeptime = 4000

While 1
	_ss()
WEnd

Func _ss()
	Local $aURL
	_FileReadToArray('test.txt', $aURL, 0, '__')
		For $i = 0 To UBound($aURL) - 1
			For $i1 = 0 To UBound($aURL) - 1
					MsgBox(0,'',$aURL[$i][0] & 'separator was here :)' & $aURL[$i][2])
					Sleep($sleeptime)
				ExitLoop
			Next
		Next
EndFunc


нужно переменнyю $sleeptime1 = $sleeptime / 2 брать за min значение в функции random(), a $sleeptime2 = $sleeptime * 2(или $sleeptime + $sleeptime1) за max значение random() и выводить строчки из файла со случайной периодичностью в итервале от [$sleeptime1, $sleeptime2] без sleep(), т.к. программа не реагирует на горячие клавиши во время сна
 
Автор
C

chernobeloe

Новичок
Сообщения
33
Репутация
0
я тупанул конечно конкретно ;D
забыл, что гор. клавиша была на уничтожение процесса по @ScriptName, а запускал скрипт из редактора
случайный интервал решил так:
Код:
#include <MsgBoxConstants.au3>
#include <File.au3>
#include <HotKey.au3>

Global Const $VK_ESCAPE = 0x1B

_HotKey_Assign (BitOR($CK_CONTROL, $CK_ALT, $VK_ESCAPE), 'esc',BitOR($HK_FLAG_NOBLOCKHOTKEY, $HK_FLAG_NOREPEAT))

Func esc()
	ProcessClose(@ScriptName)
EndFunc

Global $sleeptime = 11000, $sleeptime1 = $sleeptime/2, $sleeptime2 = $sleeptime*2

While 1
    _ss()
WEnd

Func _ss()
    Local $aURL
    _FileReadToArray('test.txt', $aURL, 0, '__')
        For $i = 0 To UBound($aURL) - 1
            For $i1 = 0 To UBound($aURL) - 1
				$ran = Random($sleeptime1,$sleeptime2,1)
                    MsgBox(0,'',$aURL[$i][0] & ' __ ' & $aURL[$i][2])
					FileWrite('sleep.txt', 'random = ' & $ran & @CRLF & '1 = ' & $sleeptime1 & @CRLF & '2 = ' & $sleeptime2 & @CRLF) ;для проверки
                    Sleep($ran)
                ExitLoop
            Next
        Next
EndFunc
 
Верх