Author Topic: пдскажите с рандомайзером текста  (Read 2940 times)

0 Members and 1 Guest are viewing this topic.

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
пдскажите с рандомайзером текста
« on: December 05, 2014, 03:17:21 PM »
Есть текстовый файл с словами вроде "продам продаю распродажа"

мне нужно сделать копии каждого слова, для того что бы их не распознавала модерация на сайте (это заголовок объявления) методом подмены русских букв на идентичные английские, на выходе должен получиться файл-список, из которого функцией

Code: (clickermann) [Select]
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 - номер файла-списка

будет собираться рандомный заголовок, с функцией мне все понятно, а вот написать скрипт для быстрого создания рандомизированного списка у меня не получается

*вызывает оравена и винта

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: пдскажите с рандомайзером текста
« Reply #1 on: December 05, 2014, 03:52:53 PM »
Вот
Code: (clickermann) [Select]
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
« Last Edit: December 05, 2014, 03:59:22 PM by Oraven »

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: пдскажите с рандомайзером текста
« Reply #2 on: December 05, 2014, 05:58:09 PM »
ухты, не думал что сабы могут так параметры принимать

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: пдскажите с рандомайзером текста
« Reply #3 on: December 05, 2014, 06:13:01 PM »
Такой вариант меняет все русские "оекосх" на английские альтернативы.
А я так понял, что нужно менять в случайном порядке и случайное количество.
Вот такой вариант:
Code: (clickermann) [Select]
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
« Last Edit: December 05, 2014, 06:15:37 PM by Vint »


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: пдскажите с рандомайзером текста
« Reply #4 on: December 05, 2014, 07:07:00 PM »
Даже не так. Там где рнд от 1 до 3. Поставить до 5 и внутри ифа вставить вокруг замены рнд по 01 да-нет.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: пдскажите с рандомайзером текста
« Reply #5 on: December 05, 2014, 07:14:55 PM »
Я так понял там просто фильтр в чате на определенные слова, и если изменить букву то слово проскочит, так что особого рандома не требуется.

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: пдскажите с рандомайзером текста
« Reply #6 on: December 05, 2014, 08:05:55 PM »
это не чат, это доска объявлений с защитой от дублирования объяв и двойной модерацией

одна модерация - бот, который не умеет распознавать подобные фокусы (надеются на капчу, наивные)

винт код свой допилит, а то там столько переменных что мне самому браться страшно? и я буду тестить

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: пдскажите с рандомайзером текста
« Reply #7 on: December 05, 2014, 11:44:27 PM »
в общем сделал я вот так:

Code: (clickermann) [Select]
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% случаев пытается подменить одну из букв
« Last Edit: December 05, 2014, 11:46:27 PM by Луций »