Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Kibes on January 18, 2019, 12:01:59 AM
-
Имеется определенная текстовая строка, куда нужно, что бы кликер, по определенной команде, в эту строку вставлять заведомо указанные значения из текстового файла. Я так понимаю это рандомный, не повторяющийся, массив, где значение этого массива будет равно значению строки данного текстового файла.
Текстовый файл будет иметь такой вид:
1 строка: ааааа
2 строка: бббб
3 строка: сссс
...
n-строка: яяяяя
print ( TFREAD (test.txt, RND(1,( TFCount("test.txt") ))) )
В принципе, как вытянуть с файла значение нужной строки я разобрался, но значения повторяются, а мне нужен цикл, где значения до окончания не повторяются.
-
LOGCLEAR
TFREADARR("input.txt",$arr)
FOR($a = ARRSIZE($arr) - 1, $a > -1, -1)
$n = RND(0,$a)
LOGWRITE ($arr[$n]) // $arr[$n] - рандомная строка (без повторов) из файла "input.txt" (см. Лог)
$arr[$n] = $arr[$a]
$del = ARRPOP($arr)
END_CYC
HALT
-
LOGCLEAR
TFREADARR("input.txt",$arr)
FOR($a = ARRSIZE($arr) - 1, $a > -1, -1)
$n = RND(0,$a)
LOGWRITE ($arr[$n]) // $arr[$n] - рандомная строка (без повторов) из файла "input.txt" (см. Лог)
$arr[$n] = $arr[$a]
$del = ARRPOP($arr)
END_CYC
HALT
Спасибо за помощь! Не могу понять, а как это применить? Вот я беру значение $arr[$n] - назначаю как переменную $num и вставляю в код, как KEYSTRING(TFREAD (test.txt, $num), RND(200,500)). Но тогда есть повторения, иногда даже по 3 раза. Видимо туплю где-то и не могу продуплить где именно!
Спасибо, сегодня подключил скри
-
IF(ARRSIZE($arr_R) = 0)
$siz = TFCOUNT("input.txt")+1
FOR($i=1,$i<$siz)
ARRPUSH($arr_R, $i)
END_CYC
$i = ARRSIZE($arr_R)-1
WHILE($i>0)
$j = RND(0,$i)
IF($i ! $j)
$tmp = $arr_R[$j]
$arr_R[$j] = $arr_R[$i]
$arr_R[$i] = $tmp
END_IF
INC($i,-1)
END_CYC
ELSE
$num = ARRPOP($arr_R)
END_IF
$str = TFREAD("input.txt", $num)
При запуске скрипта значение $num пустое. Может есть решение, что бы с первого раза оно имело значение?
-
При запуске скрипта значение $num пустое. Может есть решение, что бы с первого раза оно имело значение?
Да действительно, что то я даже не протестировал скрипт... Нужно просто добавить строку.
IF(ARRSIZE($arr_R) = 0)
$siz = TFCOUNT("input.txt")+1
FOR($i=1,$i<$siz)
ARRPUSH($arr_R, $i)
END_CYC
$i = ARRSIZE($arr_R)-1
WHILE($i>0)
$j = RND(0,$i)
IF($i ! $j)
$tmp = $arr_R[$j]
$arr_R[$j] = $arr_R[$i]
$arr_R[$i] = $tmp
END_IF
INC($i,-1)
END_CYC
$num = ARRPOP($arr_R)
ELSE
$num = ARRPOP($arr_R)
END_IF
$str = TFREAD("input.txt", $num)
LOGWRITE ($str)
WAIT(1)
Спасибо за помощь! Не могу понять, а как это применить? Вот я беру значение $arr[$n] - назначаю как переменную $num и вставляю в код, как KEYSTRING(TFREAD (test.txt, $num), RND(200,500)). Но тогда есть повторения, иногда даже по 3 раза. Видимо туплю где-то и не могу продуплить где именно!
Спасибо, сегодня подключил скри
В массиве $arr[$n] уже находится рандомная строка из файла input.txt
LOGCLEAR
TFREADARR("input.txt",$arr)
FOR($a = ARRSIZE($arr) - 1, $a > -1, -1)
$n = RND(0,$a)
KEYSTRING($arr[$n],RND(200,500))
$arr[$n] = $arr[$a]
$del = ARRPOP($arr)
END_CYC
HALT
-
Спасибо огромное! Все работает как часики! Иногда поражаюсь возможностям кликера :)