Автор Тема: помогите найти ошибку  (Прочитано 214 раз)

0 Пользователей и 1 Гость просматривают эту тему.

DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
помогите найти ошибку
« : Февраль 13, 2020, 12:43:15 pm »
помогите отловить ошибку. бот работал нормально но иногда при редактировании нажимаю применить а он нелепую ошибку выдаёт - то скобки нет, то имя не то, причём в том месте где я не редактировал ни чего. а сегодня просто при запуске выдаёт кучу ошибок.  открывать даёт только в редакторе скрипта причём если в редакторе запустить скрипт то ошибок нет. Если редактор закрыть и запустить, обрезает большую половину кода ну и соответственно выдаёт кучу ошибок.
« Последнее редактирование: Февраль 19, 2020, 06:31:42 pm от DimonNT »

kiril

  • Герой форума
  • *****
  • Сообщений: 801
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #1 : Февраль 13, 2020, 01:44:14 pm »
какой смысл искать, если после нажатия кнопки " расставить отступы" хорошо видно, что скрипт не полный и нижняя часть обрезана?
и ставить директиву автозапуска в заведомо бажный скрипт  подло ведь тому кто захочет вам помочь неизвестно какие вредоносные действия ваш скрипт может нанести компу, как минимум заблокировать нормальное использование, когда выдаёт кучу ваших ошибок.

 Чтоб обрезания кода не происходило Нажимайте кнопки  применить и сохранить, а когда программа вместо сохранения выдаёт сообщение об ошибке, по превращайте сомнительные группы строк в комментарии , а когда все ошибки исчезнут, удаляйте поочерёдно символ комментария из строк и жмите кнопки  применить-сохранить и таким способом точно найдёте все строки с ошибками.

DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #2 : Февраль 13, 2020, 01:54:24 pm »
какой смысл искать, если после нажатия кнопки " расставить отступы" хорошо видно, что скрипт не полный и нижняя часть обрезана?
и ставить директиву автозапуска в заведомо бажный скрипт  подло ведь тому кто захочет вам помочь неизвестно какие вредоносные действия ваш скрипт может нанести компу, как минимум заблокировать нормальное использование, когда выдаёт кучу ваших ошибок.

 Чтоб обрезания кода не происходило Нажимайте кнопки  применить и сохранить, а когда программа вместо сохранения выдаёт сообщение об ошибке, по превращайте сомнительные группы строк в комментарии , а когда все ошибки исчезнут, удаляйте поочерёдно символ комментария из строк и жмите кнопки  применить-сохранить и таким способом точно найдёте все строки с ошибками.
если я нажму применить и сохранить то  сохранится видимая часть кода. т.е. 2\3 части кода я потеряю - это ни как не поможет мне в поиске ошибок , это так же как заного его написать.
 скрипт режет, открой внутри редактора этот же скрипт и всё видно станет.  я весь скрипт "удалял" по 500 строк. дошел до низа и... вроде нашел после кокого отрывка он перестал ошибку выдовать, но при удалении этого места из целого (не вырезаного) кода  он опять выдал ошибку. так я поудалял несколько раз. и каждый раз новое место выходило без которого ошибка пропадала но при удалении её в основном коде ошибка возвращилась. поэтому и прошу помощи.
« Последнее редактирование: Февраль 13, 2020, 02:48:38 pm от DimonNT »

DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #3 : Февраль 13, 2020, 02:06:30 pm »
причём я даже в блокнот не могу скопировать ту часть кода который обрезает но когда открываешь этот же скрипт внутри редактора он виден.  удалось это сделать только сохранив  в самом редакторе исзменив расширение с .cms  на .txt
« Последнее редактирование: Февраль 13, 2020, 02:16:11 pm от DimonNT »

ya12

  • Активный участник
  • ***
  • Сообщений: 122
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #4 : Февраль 13, 2020, 04:04:45 pm »
Слишком большой скрипт, реж на условно самостоятельные части и сохраняй по разным файлам. Подключай последовательно и тестируй.
Если у тебя всего 1 поток. Его можно не объявлять.

Код: Clickermann
  1. SUB(вход в город) // подпрограмма
  2.  

Попробуй заменить русские названия на английские, а пробелы на _.
То что интерпретатор Кликермана не ругается, не значит, что он их правильно распознает.
Если где либо в строковых переменных присутствует символ с кодом 39, то сравнение строк приводит к ошибке.
« Последнее редактирование: Февраль 13, 2020, 04:23:17 pm от ya12 »

DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #5 : Февраль 13, 2020, 05:08:54 pm »
спасибо, разобью все субы на инклюды. попробую отпишусь . обидно что не ругался - боту уже третий год пошёл (конечно не в таком виде) а теперь вот подстава.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3383
  • Лечу куда хочу. cman 4.13.014x32, W10, W7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #6 : Февраль 14, 2020, 09:45:10 am »
В нескольких местах нулевые байты. Или вставлено откуда-то или файл был битый на диске. См. скрины.
В txt эти нулевые байты заменены пробелами. Что перестаёт ломать файл, но по прежнему ломает скрипт.

Правила имён не соблюдаются, как уже говорили, пробелы в именах. Ещё начало имён не с букв и присутствуют символы +-  См. скрин
Хоть обычно это и не влияет, но лучше так не делать, особенно проблемы и +-

Второй файл (.txt) в кодировке UTF-8 без BOM
« Последнее редактирование: Февраль 14, 2020, 09:48:41 am от Vint »


DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #7 : Февраль 14, 2020, 07:26:23 pm »
спасибо всем за советы!  не пойму откуда нулевые байты у меня их нет , даже заново скачал бот.txt нет ни чего и по строкам не совпадает это место на скринах. -+  и цифры уберу обязательно не знал что нельзя.  заменил я sub на инклюды (соответственно все #include вынес наружу, не помогло.  бот начал зацикливатся.  самое интересное тот файл который я сохранил из редактора в txt формат (вместо .cms) скопировал и вставил обратно и о чудо  кликер ругнулся пару раз (я исправил) и бот заработал. !!!
P.S.  выложу скрипт без ошибок может у кого есть желание подсказать как улучшить скрипт или уменьшить . знаний в программировании не хватает .   это бот от игры war and magic
« Последнее редактирование: Февраль 15, 2020, 03:28:16 pm от DimonNT »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3383
  • Лечу куда хочу. cman 4.13.014x32, W10, W7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #8 : Февраль 17, 2020, 01:28:59 pm »
спасибо всем за советы!  не пойму откуда нулевые байты у меня их нет , даже заново скачал бот.txt нет ни чего и по строкам не совпадает это место на скринах.
Это в файле 1.cms? на скрине видно.
И я же говорил
В txt эти нулевые байты заменены пробелами. Что перестаёт ломать файл, но по прежнему ломает скрипт.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3383
  • Лечу куда хочу. cman 4.13.014x32, W10, W7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #9 : Февраль 17, 2020, 01:39:36 pm »
Вынеси однотипные участки в подпрограммы.
Вижу кучу одинаковых мест
Код: Clickermann
  1. SWITCH($nd)
  2.    CASE(0)
  3.       PRINT("Четверг")
  4.    CASE(1)
  5.       PRINT("Пятница")
  6.    CASE(2)
  7.       PRINT("Суббота")
  8.    CASE(3)
  9.       PRINT("Воскресенье")
  10.    CASE(4)
  11.       PRINT("Понедельник")
  12.    CASE(5)
  13.       PRINT("Вторник")
  14.    CASE(6)
  15.       PRINT("Среда")
  16. END_SWITCH


DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #10 : Февраль 17, 2020, 04:09:17 pm »
да вот этот только участок не вынесен.  так то старался чтоб код не повторялся. но не всегда sub работает (в цикле например) из за этого не всё вынес.
Из-за чего всё это случилось интересно, ладно бы ошибку выдал , он начал стирать код.   Причём тот же код при сохранении в txt  и обратно всё исправил (почти всё) .
« Последнее редактирование: Февраль 17, 2020, 04:19:26 pm от DimonNT »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3383
  • Лечу куда хочу. cman 4.13.014x32, W10, W7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #11 : Февраль 17, 2020, 04:12:55 pm »
Что значит "не всегда работает"? Пример есть?
Никогда не было проблем с подпрограммами.


DimonNT

  • Зашел в гости
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: помогите найти ошибку
« Ответ #12 : Февраль 17, 2020, 04:21:00 pm »
отловлю скину. по памяти он в цикле поиска цвета\картинки не всегда работал или через раз. но там суб был тоже с циклом.