Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Shada

Pages: [1] 2
1
В папке Clickermann есть папка "data", в ней файл "config.ini", в нем параметр "program_name".

Code: (ini) [Select]
; Используемый GUI идентификатор программы
program_name = Clickermann

Файл "Clickermann.exe" тоже можно переименовать, если нужно.

2
Ещё вариант обучаемого скрипта.
http://crapware.aidf.org/forum/index.php?topic=4249.msg28951#msg28951

3
Общие вопросы / Re: Пересечения массивов
« on: October 22, 2019, 08:42:13 AM »
Привет! Есть 2 массива со строками - подскажите как лучше получить значения которые будут свтречаться в обоих массивайх??

Привет!
Можно сделать например так:
Code: (clickermann) [Select]
TFREADARR("Массив.txt", $arr) // создаем массив из 1000 строк, по 10 символов в строке
$str = ""
FOR($n = 0, $n < ARRSIZE($arr))
   $str = STRCONCAT($str, ":", $arr[$n]) // склеиваем элементы одного из массивов в строку
END_CYC

// Для примера будем сравнивать массив сам с собой. Должно получиться 100% совпадений элементов.
FOR($n = 0, $n < ARRSIZE($arr))
   IF(STRPOS($str, $arr[$n]))  // ищем текст элементов массива в строке
      ARRPUSH($arr2, $arr[$n]) // найденные совпадения запоминаем
   END_IF
END_CYC
TFWRITEARR("Дубликаты.txt", $arr2) // выводим результат в файл
UNDEFINE($arr) // удаляем ненужные массивы из памяти
UNDEFINE($arr2)
HALT

Файл "Массив.txt" во вложении.

Если массивы большие и скорости работы такого алгоритма не достаточно, то можно попробовать использовать ini-файлы, примеры на форуме есть.
Вот тут замечательный пример - http://crapware.aidf.org/forum/index.php?topic=4033.msg27491#msg27491
Правда придется допилить под свою задачу, но принцип тот же - а-ля ассоциативный массив.

4
Великолепный пример работы с картинками показал Космич: http://crapware.aidf.org/forum/index.php?topic=5087.msg33305#msg33305
Космич, спасибо! :)

В задаче всего 4 направления рубки - фланги (если я правильно понимаю задачу).
Если использовать эти направления в именах картинок, то код сильно упрощается и укорачивается.
Первые две цифры в имени картинки - это и есть фланг, или код клавиши, которая выбирает фланг.
Третья цифра и последующие - порядковый номер картинки (или еще что-то нужное).
Левый: 371.bmp, 372.bmp, 373.bmp, 374.bmp, 375.bmp, ...
Верхний: 381.bmp, 382.bmp, 383.bmp, ...
...
Картинок всего 36 (по 9 штук на фланг), это не много, поэтому можно записать их в строку, а затем загрузить её в массив. Если картинок очень много, то такой массив можно сгенерировать самим скриптом.
Для расшифровки имен картинок можно использовать свитч.
Можно ввести переменные "$NO", "$rub" "$flang", "$click_ok" если они понадобятся по ходу скрипта. Но наверно можно обойтись и без некоторых из них.

Code: (clickermann) [Select]
STRSEPARATE("371:372:373:374:375:376:377:378:379:391:392:393:394:395:396:397:398:399:381:382:383:384:385:386:387:388:389:401:402:403:404:405:406:407:408:409", ":", $arr)
WHILE(1)
   GETSCREEN
   FOR($n = 0, $n < ARRSIZE($arr))
      IF_PICTURE_IN(534,131,1743,902, STRCONCAT($arr[$n], ".bmp"))
         $flang = STRCUT($arr[$n], 1, 2)
         SWITCH($flang)
            CASE(37)
               LOGWRITE ("LEFT")
            CASE(38)
               LOGWRITE ("UP")
            CASE(39)
               LOGWRITE ("RIGHT")
            CASE(40)
               LOGWRITE ("DOWN")
         END_SWITCH
         // здесь цикл "rub"
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   // здесь цикл "NO"
END_CYC

Можно еще выкинуть свитч и переменную "$flang", если по ходу сценария они будут не нужны. Расширение ".bmp" можно сразу дописать к именам файлов, тогда многократно склеивать их не придется.

Останется такой код:
Code: (clickermann) [Select]
STRSEPARATE("371.bmp:372.bmp:373.bmp:374.bmp:375.bmp:376.bmp:377.bmp:378.bmp:379.bmp:391.bmp:392.bmp:393.bmp:394.bmp:395.bmp:396.bmp:397.bmp:398.bmp:399.bmp:381.bmp:382.bmp:383.bmp:384.bmp:385.bmp:386.bmp:387.bmp:388.bmp:389.bmp:401.bmp:402.bmp:403.bmp:404.bmp:405.bmp:406.bmp:407.bmp:408.bmp:409.bmp", ":", $arr)
WHILE(1)
   GETSCREEN
   FOR($n = 0, $n < ARRSIZE($arr))
      IF_PICTURE_IN(534,131,1743,902, $arr[$n])
         KEYPRESS(STRCUT($arr[$n], 1, 2)) // выбираем "flang"
         // здесь цикл "rub"
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   // здесь цикл "NO"
END_CYC

По циклам "rub" и "NO" информации недостаточно.

5
Архив / Re: Маленькая проблема
« on: August 17, 2019, 09:43:12 AM »
Нет описания подпрограммы "my_func_1", или это не весь код?

6
Или так:
Code: (javascript) [Select]
<script>
  var refresh = setInterval(function () {
    document.location.replace('Твой_URL' + '?' + +new Date);
  }, 15000);
</script>

"Твой_URL" только замени на нужный URL.

7
В расширении ReloadMatic есть отключение кэша.
Хорошо ли работает, не знаю.



8
Если страницу создает Clickermann, то вместо
простого обновления страницы - <meta http-equiv="Refresh" content="15" />,
можно сделать переход на другую страницу - <meta http-equiv='refresh' content='15;URL=https://yandex.ru'>.
Целевой URL остается прежним, только к нему нужно дописать, после вопросительного знака, что то вроде новой версии.

Получится примерно следующее:
Code: (html5) [Select]
<meta http-equiv='refresh' content='15;URL=https://yandex.ru?bla-bla-bla'>
Для указания новой версии страницы хорошо подходит время Unix - переменная "$_time_t".
В HTML документе можно использовать одинарные кавычки.

Code: (clickermann) [Select]
$url = STRCONCAT("<meta http-equiv='refresh' content='15;URL=https://yandex.ru?", $_time_t, "'>")
// <meta http-equiv='refresh' content='15;URL=https://yandex.ru?1565683540'>

Еще есть плагины для браузера, которые обновляют страницу игнорируя кэш.
Еще есть JavaScript.

9
Прочее / Re: GitHub и подсветка синтаксиса
« on: July 14, 2019, 12:58:48 PM »
Первые попытки можно сказать успешные. :)  Алгоритма пока нет, просто всеми регулярками, по всему массиву строк кода.
Есть и плохая новость - плагин Custom Style Script отказался работать с гитхабом в Firefox. На других сайтах работает. В консоли ошибка - "Content Security Policy: Параметры страницы заблокировали загрузку ресурса inline («script-src»)". Надо разбираться.
В хроме и опере работает отлично. В редакторе кода, тоже должно работать, там только регулярки другие будут. В мобильниках проверю позже. Времени сегодня на это дело у меня больше нет. :(

Вот что получается: (цифры еще осталось покрасить)


10
Прочее / Re: GitHub и подсветка синтаксиса
« on: July 13, 2019, 11:01:28 PM »
 :) :D ;D
Timed Access Granted!
Оставь свои контакты.
0dl8g@wimsg.com - временный Email (до 24:00 мск)

11
Прочее / Re: GitHub и подсветка синтаксиса
« on: July 12, 2019, 11:23:29 PM »
Помочь могу, но не хочу тратить свое время на тех, кто кочевряжется.
Сделаю, при условии не распространения моего скрипта.
К тебе тогда будет один вопрос... Тебе тоже для планшета надо, или для компьютера?

12
На стороне клиента я пользуюсь Notepad и он меня устраивает.
Стандартными средствами если не получится в вэбе устроить, прийдется плагин под это дело пилить(не знаю эти ЯП) или искать(неполучилось, поэтому непосредственно тут спросил).

Браузер же тоже работает на стороне клиента. В нем можно подсветить синтаксис с помощью плагина "Custom Style Script" и JavaScript.
https://mybrowseraddon.com/custom-style-script.html
В GitHub Desktop тоже будет работать JavaScript, но плагин никакой не нужен.

Может быть можно найти специализированный плагин для подсветки синтаксиса в браузере или GitHub Desktop, и адаптировать под нужный язык, как уже сказал kiril. Если такой плагин найти не получается, то Custom Style Script может помочь. Это как вариант, на крайний случай. Останется написать код JS самому (если есть интерес сделать свою авторскую подсветку), или найти помощника.

13
GitHub мне не приходилось использовать, не знаю как там чего. :-[
Я для сравнения файлов использую программу Beyond Compare, очень удобно.
В общем, сделать можно подсветку для браузера, на JavaScript и CSS. Это на стороне клиента естественно.
В приложении GitHub Desktop это тоже будет работать, оно сделано как веб-страница.
Ничего сложного в принципе нет. Скрипт должен найти в строках *.cms файла ключевые слова синтаксиса CM, обернуть их в тег и присвоить класс (или сразу в тег стили прописать).

Пример для цифр (черный цвет текста):
Code: (html5) [Select]
<span class="digit" style="color: #000;">1234567890</span>
На стороне самого GitHub, вряд ли получится, там слишком много препятствий, юридических в том числе.


14
Есть ли возможность организовать, ибо иногда не до скачивания и просмотра кода непосредственно в Notepad.
Пробовал гуглить и выдало приличный список синтаксис яп которых реализован.
https://github.com/github/linguist/tree/fc1404985abb95d5bc33a0eba518724f1c3c252e/vendor
Если непосредственно CM нет, то посоветуйте ближайший по смыслу(тегам*).

Может стоит вопрос как то перефразировать?
При чем тут GitHub? Мне не удалось найти на GitHub код для Clickermann.  :(

Для Notepad++ подсветка синтаксиса давно сделана:
http://crapware.aidf.org/forum/index.php?topic=1419.msg22900#msg22900

Если у кого не видно ссылок для скачивания, то вот копия страницы: https://yadi.sk/d/Mle9HDzTGJbdaQ

15
В целом работает, но так как время выполнения тела не нулевое, начало выполнения следующего цикла сдвигается на пару секунд. В общем, прошу помощи - как добиться строгого срабатывания раз в минуту?

В моем понимании вопроса, требуется коррекция задержки между итерациями цикла, которая должна быть строго равна 1 минуте.

Было такое решение однажды. Сам по себе алгоритм красивенный, если вникнуть,  плюс эта коррекция паузы - http://crapware.aidf.org/forum/index.php?topic=3439.msg23552#msg23552

Пример:
Code: (clickermann) [Select]
DEFINE($iteration_time, 1000) // устанавливаем задержку между итерациями цикла, в миллисекундах (1000 ms)

$t = $_ms // время начала итерации

WAITMS(RND(500,800)) // время выполнения тела цикла (всегда разное и должно быть меньше $iteration_time)

// коррекция времени (вычисляем время задержки, перед началом следующей итерации)
WAITMS($iteration_time - ($_ms - $t)) // задержка (вычитаем из задержки "$iteration_time" время, затраченное на выполнение действий в текущей итерации)

LOGWRITE ("Потеря времени: ", $iteration_time - ($_ms - $t), " ms") // 1 миллисекунду спишем на вывод этого сообщения

Pages: [1] 2