Author Topic: Ошибка интерпретации строки  (Read 2294 times)

0 Members and 3 Guests are viewing this topic.

Vlad3

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Ошибка интерпретации строки
« on: April 11, 2019, 06:25:47 PM »
Здравствуйте, есть вот такая ошибка https://ibb.co/qRmZPTJ Появляется не всегда, гдето в 4 случаях из 10. Есть txt файл с которого эта команда берёт значения $randfrazs2 - это рандомный елемент массива, $ww - названние елемента в массиве, $delaykey - скорость написания текста. В файле txt строки записаны так : $ww[0] = " текст который будет выводится ". Повторюсь, работает в половине случаев, в другой же выпадает эта ошибка. Может кто-то знает чем пофиксить?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ошибка интерпретации строки
« Reply #1 on: April 11, 2019, 07:03:08 PM »
Скрипт где?

Vlad3

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Ошибка интерпретации строки
« Reply #2 on: April 11, 2019, 07:17:29 PM »
#include "otveti.cms"
   WAITMS(RND(500,1000))
   $randfrazs2 = RND(0,TFCOUNT("otveti.cms"))
   
   $delaykey = RND(109,355)
   WAITMS(RND(500,1000))
   
   
   KEYSTRING($ww[$randfrazs2],$delaykey)
   WAITMS(RND(500,1000))

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ошибка интерпретации строки
« Reply #3 on: April 11, 2019, 08:00:44 PM »
Ниче не понимаю. Зачем ты рандомишь количество строк из скрипта "otveti.cms"? Где этот скрипт?

Не понятно каким образом сформировался массив $ww

Vlad3

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Ошибка интерпретации строки
« Reply #4 on: April 11, 2019, 08:13:25 PM »
Скрипт, который я вызываю, это один большой массив стринговых значений, я рандомлю строку из массива, а ww это елемент массива, randomfrazs это номер елемента в массиве. Мне нужно просто выбрать рандомный номер елемента и вызвать его путем написания в окне.
Код, который находится в скрипте ответы.смс :
$ww[0] = "ответ1"
$ww[1] = "ответ 2"
$ww[2] = "ответ 3"
$ww[3] = "ответ 4"

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ошибка интерпретации строки
« Reply #5 on: April 11, 2019, 09:34:39 PM »
$ww[0] = "ответ1" - первая строка, индекс массива = 0
$ww[1] = "ответ 2" - вторая строка, индекс = 1
...

Чуешь где подвох?


Либо   $randfrazs2 = RND(0,TFCOUNT("otveti.cms") - 1) - глупо, так как в скрипте не исключены пустые строки или еще чего
Либо   $randfrazs2 = RND(0,arrsize($ww) - 1).
Либо выкидываешь инклуд, и пишешь просто в текстовик ответы свои, и читаешь рандомную строку из него, без массива.

Vlad3

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Ошибка интерпретации строки
« Reply #6 on: April 11, 2019, 10:41:53 PM »
Сработало! Спасибо тебе большое!

Vlad3

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Ошибка интерпретации строки
« Reply #7 on: April 12, 2019, 06:41:00 PM »
Ошибка снова появилась толь теперь в 1 случае из 10. Может кто-то сталкивался?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ошибка интерпретации строки
« Reply #8 on: April 12, 2019, 07:20:47 PM »
Ошибка снова появилась толь теперь в 1 случае из 10. Может кто-то сталкивался?

Дак ты ж и сталкиваешься! Нагородил какой то изврат...
Помести твои ответы в файл otveti.txt каждый ответ с новой строки. Все остальное кликер сделает сам.

Code: (clickermann) [Select]
TFREADARR("otveti.txt", $ww) // Читаем ответы в массив
$siz = ARRSIZE($ww)-1 // получаем размер массива

WHILE(1) // далее бесконечный цикл     
   $r = RND(0,$siz)
   WHILE($r = $rs) // защита против выбора варианта два раза подряд
      $r = RND(0,$siz)
   END_CYC
   $rs = $r
   KEYSTRING($ww[$r],RND(109,355))
   WAITMS(RND(500,1000))
END_CYC

Vlad3

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: Ошибка интерпретации строки
« Reply #9 on: April 13, 2019, 01:10:35 PM »
Релишась проблема, спасибо вам большое!