Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Луций on December 05, 2014, 03:17:21 PM
-
Есть текстовый файл с словами вроде "продам продаю распродажа"
мне нужно сделать копии каждого слова, для того что бы их не распознавала модерация на сайте (это заголовок объявления) методом подмены русских букв на идентичные английские, на выходе должен получиться файл-список, из которого функцией
for($i=1,$i<5)
$file=strconcat("C:\Documents and Settings\Sasulka\Рабочий стол\oksana\t",$i,".txt")
$f=tfread($file, rnd(1,tfcount($file)))
toclip($f)
v()
keypress(#space)
end_cyc
где $i - номер файла-списка
будет собираться рандомный заголовок, с функцией мне все понятно, а вот написать скрипт для быстрого создания рандомизированного списка у меня не получается
*вызывает оравена и винта
-
Вот
SUB(замена, $r, $r2)
WHILE(STRPOS($f,$r)>0)
$f = STRREPLACE($f,$r,$r2)
END_CYC
END_SUB
for($i=1,$i<5)
$file=strconcat("C:\Documents and Settings\Sasulka\Рабочий стол\oksana\t",$i,".txt")
$f=tfread($file, rnd(1,tfcount($file)))
замена("а","a")
замена("е","e")
замена("к","k")
замена("о","o")
замена("с","c")
замена("х","x")
toclip($f)
v()
keypress(#space)
end_cyc
HALT
-
ухты, не думал что сабы могут так параметры принимать
-
Такой вариант меняет все русские "оекосх" на английские альтернативы.
А я так понял, что нужно менять в случайном порядке и случайное количество.
Вот такой вариант:
SUB(замена)
$num = RND(1,3)
FOR($j, $j < $num)
$pos = STRPOS($f,$r)
IF($pos > 0)
$f = STRREPLACE($f,$r,$r2)
$start = STRCUT2($f, 1, $pos-1)
$end = STRCUT2($f, $pos+1, 99)
$f = STRCONCAT($start, $e, $end)
ELSE
$j = 99
END_IF
END_CYC
END_SUB
$rus = "аеосх" // ктрнвм зависит от шрифтов
$eng = "aeocx" // ktphbm зависит от шрифтов
for($i=1,$i<5)
$file=strconcat("C:\Documents and Settings\Sasulka\Рабочий стол\oksana\t",$i,".txt")
$f=tfread($file, rnd(1,tfcount($file)))
FOR($i=1, $i < STRLEN($rus)+1)
IF(RND(0,1) = 1)
$r = STRCUT($rus, $i, 1)
$e = STRCUT($eng, $i, 1)
замена()
END_IF
END_CYC
toclip($f)
v()
keypress(#space)
end_cyc
HALT
-
Даже не так. Там где рнд от 1 до 3. Поставить до 5 и внутри ифа вставить вокруг замены рнд по 01 да-нет.
-
Я так понял там просто фильтр в чате на определенные слова, и если изменить букву то слово проскочит, так что особого рандома не требуется.
-
это не чат, это доска объявлений с защитой от дублирования объяв и двойной модерацией
одна модерация - бот, который не умеет распознавать подобные фокусы (надеются на капчу, наивные)
винт код свой допилит, а то там столько переменных что мне самому браться страшно? и я буду тестить
-
в общем сделал я вот так:
for($i=1,$i<5)
$file=strconcat("C:\Documents and Settings\Sasulka\Рабочий стол\oksana\t",$i,".txt")
$str=tfread($file, rnd(1,tfcount($file)))
$rnd=rnd(1,6)
switch($rnd)
case(1)
$str=STRREPLACE($str,"о","o")
case(2)
$str=STRREPLACE($str,"а","a")
case(3)
$str=STRREPLACE($str,"е","e")
default
waitms(99)
end_switch
toclip($str)
v()
keypress(#space)
end_cyc
вроде значительно проще написал, теперь он в 50% случаев пытается подменить одну из букв