Автокликер Clickermann :: Форум

Основной раздел => Ошибки => Topic started by: Hito on March 07, 2022, 11:31:38 AM

Title: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 07, 2022, 11:31:38 AM
Некоторая программа создает файл - Chat.log, с которым мне нужно, чтобы работал кликер, но если этот файл создает программа, то кликер в нем не видит строк. Если же я кликером создаю этот файл и потом подменяю им созданный программой, то в этом файле программа прописывает какие-то кракозябры, вместо лога.
Пробовал так...
Code: (clickermann) [Select]
FCopy("Chat.log", "Chat.txt")
LOGWRITE (TFREAD ("Chat.txt", 1))
HALT
И так получается, но только первый раз, так как для последующих разов приходится удалять предыдущий Chat.txt, а после его удаления кликером, с новым работать не возможно.
Ни у кого нет идей?
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Иван_Васильевич on March 07, 2022, 02:59:53 PM
Магическое слово - "кодировка"?  Нет, не слышал! :o
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 07, 2022, 05:03:47 PM
Магическое слово - "кодировка"?  Нет, не слышал! :o
Упс... У нас эти функции Clickerman поддерживает...?
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 07, 2022, 08:15:39 PM
Магическое слово - "кодировка"?  Нет, не слышал! :o
Ну, ты крякнул - продолжай... У нас Clickerman, при чтении файлов, поддерживает разновидность кодировки, или что? Каким образом то, что ты сказал, применить к моему вопросу?
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Иван_Васильевич on March 08, 2022, 02:39:42 AM
А кто ты такой, чтоб понукать?
А что, ты за птица такая, что слова человека, который подарил тебе идею и сделал это по твоей-же просьбе, кряканьем обзывать?
 Если способ применения тебе не понятен, то это не повод для оскорблений, а повод задуматься над наличием у тебя достаточного для понимания интеллекта, отличающего людей от животных.
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 08, 2022, 11:19:19 AM
А кто ты такой, чтоб понукать?
А кто ты такой, чтоб выеживаться, "напоминая" мне о кодировке, делая вид, что я о ней никогда и не знал...?
А что, ты за птица такая, что слова человека, который подарил тебе идею и сделал это по твоей-же просьбе, кряканьем обзывать?
Что дает твоя "идея"? Она добавляет в кликер возможность смены кодировки? Выступил с тупым предположением, что я о кодировке никогда не слышал, и называешь это идеей...
Если способ применения тебе не понятен, то это не повод для оскорблений, а повод задуматься над наличием у тебя достаточного для понимания интеллекта, отличающего людей от животных.
Даже если у Clickerman-а есть возможность - менять кодировку, но способ мне непонятен... Чудик, ты этим вопросом измеряешь интеллект человека и отличаешь от животных...? ))) Ну... Что я могу сказать... Это уже что-то говорит о ТВОЕМ интеллекте... По твоим меркам Адам был животным из животных...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Иван_Васильевич on March 08, 2022, 12:46:02 PM
 Специально посмотрел сообщения на форуме с аккаунта Hito.
 Оказывается, что он официальный гомосексуалист и не сильно  здесь скрывает свои отклонения.
 Я конечно всё понимаю, времена меняются, но народ должны-же быть какие-то рамки, специальные места знакомств и общения для таких, как Hito.
 Почему обычные люди должны на официальном форуме "Clickermann",  получать оскорбления без всяких на то причин, просто по тому, что не могут ответить этому быдлу на его пидористические издевательства?
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 08, 2022, 01:13:06 PM
Во первых...
Почему обычные люди должны на официальном форуме "Clickermann",  получать оскорбления без всяких на то причин, просто по тому, что не могут ответить этому быдлу на его пидористические издевательства?
Оскорбления ты получил не потому, что не можешь ответить (на данный момент 49 просмотров этой темы и я никого не оскорбил только за то, что он не смог ответить), а за то, что отвечаешь шляпу всякую, еще и с подтекстом, что я идиот...
Далее вообще с тобой нет никакого желания общаться. Педерасту мерещится, что он общается с педерастом. Все, что я могу сказать...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Vint on March 09, 2022, 10:03:17 AM
Магическое слово - "кодировка"?  Нет, не слышал! :o
Упс... У нас эти функции Clickerman поддерживает...?
Кликерман не умеет работать с кодировками. И код программы и текстовые файлы поддерживаются только в кодировке UTF-8 BOM. В старых версиях кодировка была cp1251.
А та программа, что пишет лог, умеет писать его в другой кодировке? Предполагаю, что нет. Счёт 1:1  :)

Или копируй файл и перекодируй его в UTF-8.
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 09, 2022, 10:32:56 AM
А та программа что пишет лог умеет писать его в другой кодировке?
Ну, выходит, что так...
Или копируй файл и перекодируй его в UTF-8.
Так писал же выше - "Если же я кликером создаю этот файл и потом подменяю им созданный программой, то в этом файле программа прописывает какие-то кракозябры, вместо лога."
Вот такую хрень - ����� ������ ������������ ��������� ������ � ��������.
Вот здесь вот - https://www.artlebedev.ru/decoder/ (https://www.artlebedev.ru/decoder/), пишет, что кодировка текста в каком-то EUC-KR...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Vint on March 09, 2022, 01:10:58 PM
Так писал же выше - "Если же я кликером создаю этот файл и потом подменяю им созданный программой, то в этом файле программа прописывает какие-то кракозябры, вместо лога."
Ну правильно, так делать нельзя. Кликер создаёт txt и пишет туда в кодировке UTF-8. Та программа пишет в другой кодировке. Если в той проге есть настройка кодировки логов - переключи. Если нет, то только вариант перекодировать сторонними консольными утилитами. Если и программа и кликер должны писать одновременно, то ничего не выйдет.
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 09, 2022, 03:09:00 PM
Ну, понятно в общем... Идей нет...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: dramster on March 09, 2022, 05:27:33 PM
Вообще, идея есть. Только пк под рукой нету чтоб глянуть как это будет, и что там за кодировка.
В 4.14 есть функция чтения файлов побайтово, типа readdata или типа того. Смотрим по таблице кодировки какие там буквы цифры, сколько байт на символ. Дальше математика, и char(code). Работать должно шустро. Завтра гляну если скинешь файл лога.
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 09, 2022, 06:29:02 PM
Вообще, идея есть. Только пк под рукой нету чтоб глянуть как это будет, и что там за кодировка.
В 4.14 есть функция чтения файлов побайтово, типа readdata или типа того. Смотрим по таблице кодировки какие там буквы цифры, сколько байт на символ. Дальше математика, и char(code). Работать должно шустро. Завтра гляну если скинешь файл лога.
Даже интересно стало - сейчас сам гляну )) Я забыл про эту балалайку...))
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 09, 2022, 06:43:31 PM
Не вариант похоже...
Вот такой скрипт:
Code: (clickermann) [Select]
FREADDATA ("Chat.log", $arr)
FOR($a=0,$a<ARRSIZE($arr))
   $str = STRCONCAT($str,CHAR($arr[$a]))
END_CYC
LOGWRITE ($str)
HALT
Дает результат - 02022.03.09 18:33:38 : [3.Ïîèñê ãðóïïû] [charname:Chyam;1.0000 0.6941 0.6941]: [cmd:Chyam;ZKKrYVse03w0BGgFwrxdmHM8mJ4McGu/Dild8UE4YD0=]SWB PVE FFA? HEALS / DPS / SINWAY R2G

Вот где цифры, или латинские буквы, там норм. Но вот это вот - [3.Ïîèñê ãðóïïû], это на самом деле - [3.Поиск группы]
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 09, 2022, 06:58:45 PM
Вобщем я хз - как так получилось, но сейчас кликер может читать этот файл лога, но стоит ему, либо добавить какую-то строку в этот файл, либо удалить из него какую-то строку и игра начинает записывать в этот файл кракозябры. Я так понимаю, что для удаления строк, или для записи их в файл, кликеру нужно открыть его и потом сохранить. И сохроняет он его уже в своей кодировке. Что с этим делать - я хз...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 09, 2022, 07:18:16 PM
В общем вот два файла лога. Один файл был создан клиентом игры и в нем нормально видно лог, пока Clickermann не стал работать с этим файлом.
https://disk.yandex.ru/d/VpDmDudb16NzrQ (https://disk.yandex.ru/d/VpDmDudb16NzrQ)
А вот файл, созданный Clickermann-ом, и подсунутый вместо файла, созданного игрой. И не важно - создан ли этот файл Clickermann-ом, или Clickermann просто удалит хотя бы одну строку из файла, созданного игровым клиентом - эффект будет тот же.
https://disk.yandex.ru/d/j7_lomBbLQn_9g (https://disk.yandex.ru/d/j7_lomBbLQn_9g)
В обоих файлах идентичные логи использования одного и того же скила.
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Vint on March 10, 2022, 09:59:24 AM
Ты скажи, что ты хочешь сделать. Если одновременно писать в файл двумя программами, то не выйдет.
Что тебе мешает создать второй файл и копировать туда строки из первого и дописывать кликером свои.
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 10, 2022, 12:08:02 PM
Ты скажи, что ты хочешь сделать.
Нужно работать со скилами. Вся беда в том, что восстановленный скилл не сложно вычислить на экране, но вычислить то, что скилл использован до конца, графически вычислить очень сложно. И потому я хочу, чтобы сигнал для начала использования скила Clickermann получал с экрана, а сигнал о том, что скилл использован, брал из чата, путем перебора строк чата и поиска в них строки с названием нужного скила. Если такая строка имеется, то скилл использован. Но каждую такую строку нужно подчищать, чтобы при следующем использовании скилла этого, Clickermann не "обманулся" прошлой строкой. Я не знаю - понятно ли я объяснил...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Vint on March 10, 2022, 01:51:57 PM
Если файл лога кликер удалит, программа пишущая лог создаст его заново и продолжит в него писать?
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: Hito on March 10, 2022, 08:32:10 PM
Если файл лога кликер удалит, программа пишущая лог создаст его заново и продолжит в него писать?
Ну, как бы на этом грубом решении я вчера и остановился пока...
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: dramster on March 21, 2022, 02:41:31 PM
Ну как бы вот. Сорри что только сейчас пишу, никак не было времени и пк.
Только по итогу выходит одна большая строка со всем текстом из файла. Если нужно разделить, можно и разделить. И потом в обратном порядке можно опять в файл записать.
Code: (clickermann) [Select]
FREADDATA ("Chat-game.log", $arr)
FOR($a=0,$a<ARRSIZE($arr))
   if($arr[$a]>191)
      $arr[$a] = $arr[$a]+848
   end_if
   
   $str = STRCONCAT($str,CHAR($arr[$a]))
   
END_CYC
LOGWRITE ($str)
HALT
Title: Re: Ни у кого нет вариантов - как работать с текстовым файлом?
Post by: dramster on March 21, 2022, 03:38:24 PM
А вот и с разделением на строки. Массив $all_str, в каждой ячейку по строке.
Code: (clickermann) [Select]
FREADDATA ("Chat-game.log", $arr)
FOR($a=0,$a<ARRSIZE($arr))
   if($arr[$a]>191)  //в win-1251 все буквы и цифры занимают по одному байту. поэтому вся таблица это 256 символов, и все, больше не влезет. в юникоде же используют два байта на символ, а это ооочень дофига 65535 вариантов вместо 256. я глянул для интереса таблицу, долго листал, а там она как оказалось еще не полная, то есть можно еще добавлять всякие символы там всякие языки новые.
   //так вот, в вин-1251 русские символы начинаются с 192 символа, а в юникоде с 1040
      $arr[$a] = $arr[$a]+848
   end_if
   IF($arr[$a] = 13) //смотрим когда у нас символ переноса строки
      $a = $a + 1   //прыгаем еще через один символ там есть такой
      ARRPUSH ($all_str, $str) //добавляем созданную ранее строку в массив
      undefine($str)  //и избавляемся, на время
   ELSE
      $str = STRCONCAT($str,CHAR($arr[$a]))  //тут без перерыва строчим в  $str
   END_IF   
END_CYC

FOR($a=0,$a<ARRSIZE($all_str)) //смотрим результат
print($all_str[$a])
END_CYC


HALT