Что нового

"Сбивается" рандомное значение в переменной

Mekiz

Новичок
Сообщения
2
Репутация
0
Всем привет, столкнулся с такой проблемой... В самом начале кода у меня список переменных, которым присваивается рандомное значение. Каждой переменной рандомное значение может присваиваться из одной и той же функции. Далее, это присвоенное рандомное значение должно быть постоянным на протяжение выполнения всего кода. Код весь состоит из условий if, else, sleep(), записей в фаилы значений переменных и передачи разных параметров другим программам с использованием этих же переменных. Никаких циклов\возвратов и т.п. Последовательное выполнение с сначала и до конца. И проблема заключается в том, что переменные "сбиваются" в некоторых местах выполнения кода. Например param1 может присвоить значение param2, а param2 присвоить значение param1. Либо param1 может взять новое значение из рандома на выполнение команды, а затем вернуться к старому значению. :scratch:
Например в таких случаях может произойти "сбой":
Код:
FilyCopy("d:\1.txt,"d:\doc\"&$param1&"\"&param5&".txt")
Local $file = "d:\doc\"&$param1&"\"&param5&".txt"
Local $file_o = FileOpen("d:\test.txt", 17)
FileWrite($file_o, $file)
FileClose($file_o)

Скопировать может правильно и с теми же значениями переменных, а в фаил записать уже другие или перепутанные друг с другом, либо наоборот и т.п.
Из мыслей в чем может быть дело - индивидуальную функцию рандома для каждой переменной нужно может? Или возможно, что Global использую там, а при записи Local? Просто много правок в код нужно вносить, чтобы проверить эти догадки... :-\ :(

Не большой пример кода:
Код:
Global $param1 = _random1()
Global $param2 = _random1()
Global $param3 = _random1()
Global $param4 = _random2()
Global $param5 = _random2()
Global $param6 = _random2()
Global $param7 = _random3()
Global $param8 = _random3()
Global $param9 = _random3()

Func _random1()
$param = ''
	Switch Random(1, 5, 1)
        Case 1
            $param  &= "Папка 1"
        Case 2
            $param &= "Папка 2"
        Case 3
            $param &= "Папка 3"
	Case 4
            $param &= "Папка 4"
	Case 5
            $param &= "Папка 5"
    EndSwitch
Return $param
EndFunc

Func _random2()
$param = ''
	Switch Random(1, 5, 1)
        Case 1
            $param  &= "Фаил 1"
        Case 2
            $param &= "Фаил 2"
        Case 3
            $param &= "Фаил 3"
	Case 4
            $param &= "Фаил 4"
	Case 5
            $param &= "Фаил 5"
    EndSwitch
Return $param
EndFunc

Func _random3()
$rnmRANm = Random(5,10,1)
$iLen = $rnmRANm
$sString = ''
For $i = 1 To $iLen
    Switch Random(1, 3, 1)
        Case 1
            $sString &= Chr(Random(48, 57, 1)) ;0-9
        Case 2
            $sString &= Chr(Random(65, 90, 1)) ;A-Z
        Case 3
            $sString &= Chr(Random(97, 122, 1)) ;a-z
    EndSwitch
Next
Return $sString
EndFunc
 

vnaloge

Новичок
Сообщения
1
Репутация
0
Для чего так извращаться? Напишите, что Вы хотите получить от скрипта, и мы Вам поможем, но то что пишите Вы...фуфуфу...так нельзя
 
Автор
M

Mekiz

Новичок
Сообщения
2
Репутация
0
vnaloge сказал(а):
Для чего так извращаться? Напишите, что Вы хотите получить от скрипта, и мы Вам поможем, но то что пишите Вы...фуфуфу...так нельзя
Ну так все просто - задача некоторым переменным присвоить рандомное значение из списка, как уже выше в примере. А некоторым переменным рандомное значение из цифр\букв. А дальше уже использовать эти переменные в своем коде. Т.е. в самом начале исполнения некоторым переменным присваиваются рандомные значения из списка заготовленного, а некоторым просто генерируются из букв\цифр. И дальше уже нужно, чтобы эти присвоенные значения использовались до завершения выполнения скрипта. Но проблема в том, что происходят сбои на определенных участках кода, как уже выше написал.
 
Верх