Author Topic: Типовые алгоритмы, вводные статьи (Новички, читайте!)  (Read 329962 times)

0 Members and 1 Guest are viewing this topic.

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #45 on: December 07, 2012, 11:56:39 PM »
Сергей

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

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #46 on: December 08, 2012, 01:54:07 PM »
Уважаемый Сергей написал новую версию скрипта  для даты. http://goo.gl/02CY7
  Вероятно есть смысл её обновить и в "типовых алгоритмах".http://goo.gl/MdZSS
Бабочки полёт будит тихую поляну в солнечном свету...

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #47 on: December 09, 2012, 02:51:50 AM »
Применено:
GOSUB(UPDATE_DATE)
print($_date_d,".",$_date_m,".",$_date_y)
GOSUB(UPDATE_DATE)
print($_date_d,".",$_date_m,".",$_date_y)

получено:
1. Если время с 00:00 до 12:59 то
оба принта с правильным числом
2. Если время с 13:00 до 23:59 то
первый принт показывает число на 1 больше, а второй нормальное.

Вот и гадать теперь где там эта ошибка ?? ((
Попробуй на новом скрипте, я как раз отловил там этот баг.
Отсутствую.

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #48 on: December 10, 2012, 09:18:26 AM »
Пример использования функций работы с файлами (TFREAD, TFWRITE и т.п.)

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

Code: (clickermann) [Select]
#name "Delete comments"

// Инициализируем переменные
$filename = "test.txt"//Имя файла
$i = 1//Индекс строки

WHILE( $i < TFCOUNT($filename) + 1 ) // Выполняем до тех пор, пока не кончатся строки
$string = TFREAD($filename, $i) // Читаем строку $i из файла
$pos = STRPOS($string, "//") // Ищем в строке "//"
   
IF($pos ! 0) // Если "//" в строке есть
TFDELETE($filename, $i) // Удаляем эту строку
IF($pos ! 1) // Если до "//" вообще есть какой-то текст
TFWRITE($filename, STRCUT2($string, 1, $pos - 1), $i) // То пишем его в файл, на ту же строку, которую удалили.
END_IF
ELSE
INC($i, 1) // Если никаких комментариев в строке нету, то переходим к другой строке
END_IF
END_CYC


HALT // Останавливаем скрипт

Используемые команды:
  • TFREAD - Чтение строки из файла
  • TFWRITE - Запись строки в файл
  • TFDELETE - Удаление строки из файла
  • TFCOUNT - Количество строк в файле
  • STRPOS - Нахождение строки
  • STRCUT2 - Обрезание строки
  • INC - Увеличение значения переменной
  • WHILE - Цикл

Пояснение некоторых моментов:

Code: (clickermann) [Select]
WHILE( $i < TFCOUNT($filename) + 1 ) // Выполняем до тех пор, пока не кончатся строки"+ 1" является заменой выражения меньше-равно. Счет строк в Кликермане начинается с 1 и просто выражение "меньше" обработает все строки кроме последней.

Code: (clickermann) [Select]
IF($pos ! 0) // Если "//" в строке естьВ Кликермане функция STRPOS возвращает ноль, если ничего не найдено. Счет тут так же начинается с 1.

Code: (clickermann) [Select]
TFWRITE($filename, STRCUT2($string, 1, $pos - 1), $i) // То пишем его в файл, на ту же строку, которую удалили.Синтаксис функции STRCUT2 - STRCUT2($string, $begin, $end)
Эта функция в качестве третьего аргумента ($end) принимает номер символа считая с нуля. При этом второй аргумент ($begin) считает от 1.
Т.е. функция STRCUT2("test", 1, 1) вернет "t". Поэтому в данном случае от переменной $pos отнимается 1.

Пример файла test.txt:
Code: [Select]
tesst
te//
te
te//
//
//
//
foo
foo//
//
bar
ba
//
//
test
bar//foo
foo

Результат работы скрипта:
Code: [Select]
tesst
te
te
te
foo
foo
bar
ba
test
bar
foo
Отсутствую.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #49 on: December 10, 2012, 12:42:04 PM »
Данный скрипт удаляет из произвольного файла строчные комментарии.
Речь идет о удалении всего, что за  косыми //.
Вероятно это полезно,  особенно  корифеям.
А вот нельзя ли написать скрипт, для удаления из текста строчек с матюками ?
( или  как-то мат метить красным цветом, вырезать и записывать в отдельный файл итп)
 Страна просыпается. Начнет  помаленьку отряхиваться от демократических  нечистот.
 Такой скрипт был  своевременным.
п.с.
Скачать в сети матфильтр пока не удалось. Нарвался на вирусню [spoiler]C:\PROGRA~1\Matfiltr\mtfltr.dll --> Подозрение на Keylogger или троянскую DLL [/spoiler] и успокоился.
« Last Edit: December 10, 2012, 01:09:23 PM by ЦИТРИН »
Бабочки полёт будит тихую поляну в солнечном свету...

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #50 on: December 10, 2012, 01:33:04 PM »
Для матфильтра нужен, собственно, матлист и синтаксический анализатор русского языка. Первый, если составлять самому, будет далеко не полон.
А для реализации второго, нужен язык немного другой направленности, нежели Кликерман.
Отсутствую.

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #51 on: December 19, 2012, 11:39:11 AM »
Типовой Сниматель Скришотов SSWL
Работает в двух режимах. Первый для сравнения колормода, второй для покадровой съёмки.
Code: (clickermann) [Select]
// ScreenShot WireLess
// including Getcreen Colormode Screenshot

// значения задаваемые вручную для работы программы

$Nameobj = "GlazBuri"  // имя объекта сканирования
$Mode = 10
$Mwait = 250
// Варианты работы:
// 1) $mode = 1. делает 8 скриншотов, по 1 на каждую опцию колормода
// 2) $mode = >1. любое значение больше единицы приводит к изготовлению этого кол-ва скриншотов c паузами в $Mwait миллисекунд

If ($mode > 1)
   $m2cycle = 0
   WHILE ( $mode > $m2cycle )
      screenshot($nameobj)
      waitms($Mwait)
      inc($m2cycle)
   end_cyc
end_if

if ($mode = 1)
   getscreen
   screenshot(strconcat("SSWL. ",$nameobj," clear "))
   COLORMODE(1)
   screenshot(strconcat("SSWL. ",$nameobj," colormode1 "))
   getscreen
   COLORMODE(2)
   screenshot(strconcat("SSWL. ",$nameobj," colormode2 "))
   getscreen
   COLORMODE(3)
   screenshot(strconcat("SSWL. ",$nameobj," colormode3 "))
   getscreen
   COLORMODE(4)
   screenshot(strconcat("SSWL. ",$nameobj," colormode4 "))
   getscreen
   COLORMODE(5)
   screenshot(strconcat("SSWL. ",$nameobj," colormode5 "))
   getscreen
   COLORMODE(6)
   screenshot(strconcat("SSWL. ",$nameobj," colormode6 "))
   getscreen
   COLORMODE(7)
   screenshot(strconcat("SSWL. ",$nameobj," colormode7 "))
End_if

halt

кодировку исправил, благодарю Oraven, Сергей
« Last Edit: January 04, 2013, 12:46:58 PM by СлавьЯнИнъ »
добрый смех равняет всех

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #52 on: December 19, 2012, 11:51:07 AM »
Типовой Сниматель Скришотов
Спасибо)
 Будет  намного удобнее.
Попутно вопрос. А нельзя ли сделать так, чтобы на выходе скрипта  у нас получались не полные снимки экрана, а прямоугольные зоны  по указанным границам Х_У. (готовые картинки искомой цели  в колормодах). Можно ли как-то автоматизировать  работу  в  стандартном пейнте в продолжении данного скрипта.
« Last Edit: December 19, 2012, 11:55:24 AM by ЦИТРИН »
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #53 on: December 19, 2012, 01:01:47 PM »
У тебя какая то не та кодировка

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #54 on: December 23, 2012, 08:39:15 PM »
СлавьЯнИнъ, сохрани скрипт кликерманом и открой каким-нибудь другим редактором. И из него уже копипасть.
Отсутствую.

СлавьЯнИнъ

  • Активный участник
  • ***
  • Posts: 179
    • View Profile
Благодарю, Друзья!
В принципе после перезагрузки всё стало в норму. Видимо несколько открытых программ с разной кодировкой повлияли на буфер обмена.
добрый смех равняет всех

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Сморя для какой задачи. Можно и в одном скрипте.
Используя команды HGET, HSET, WNDFIND и системную переменную $_hwnd можно сделать с любым количеством окон.
Если по WNDFIND будет определяться не тот hwnd, можно сделать чтоб скрипт  при запуске поочерёдно делал окна активными  и HGET-ом брал нужные hwnd. Таким образом вначале "пристреливаемся", потом работаем.

Пока писал ответ удалили вопрос  :)
« Last Edit: February 21, 2013, 02:52:07 PM by Vint »


organizm

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Винт, сори, я просто не очень корректно его сформулировал. Я понял, что можно, используя WinApi кликать в свернутые 10 окон браузера. Но пока не понял, можно ли это делать, используя "оконный режим" кликера или этот режим подходит только для одного свернутого окна.

Форвард

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Типовые алгоритмы
« Reply #58 on: March 10, 2013, 04:37:25 PM »
Данный скрипт запускает блокнот и 5 раз записывает в него строку "The quick brown fox jumps over the lazy dog."

Заметь, что должна быть включена английская раскладка.

Кликер 4.7 SE, винда7, записываю свой англ.текст в игровое окно в браузер, раскладка включена англ. - KEYSTRING (с включенным временем задержки) записывает все заглавные английские прописными английскими .... прописные - прописными... 

пичалька ((

нашел свою ошибку - на самом деле - кликер 4.3 и в справке показано - заглавные запишет прописными ... :-р-р-р-р...
« Last Edit: March 10, 2013, 04:44:50 PM by Форвард »

Вуа

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Типовые алгоритмы, вводные статьи
« Reply #59 on: April 24, 2013, 04:08:36 AM »
[spoiler]
Кому то может понадобиться перезагрузить или выключить компьютер.

Для этого пишем такие строки

Отключение компьютера
Code: (clickermann) [Select]
EXECUTE ("shutdown.exe", "/s /t 00")
HALT

Отключение компьютера с принудительным завершением приложений без предварительного предупреждения
Code: (clickermann) [Select]
EXECUTE ("shutdown.exe", "/s /f /t 00")
HALT

Перезагрузка компьютера
Code: (clickermann) [Select]
EXECUTE ("shutdown.exe", "/r /t 00")
HALT

Обозначения:
/l                      Выход (Log off)
/s                     Завершение работы компьютера
/r                     Перезагрузка компьютера
/a                    Прекращение завершения работы системы
/t xx                Таймаут завершения работы - xx сек.
/f                     Принудительное завершение приложений без предварительного предупреждения
[/spoiler]
угу, вин+К "shutdown -s -f -t 6000" энтер, и кликерман не нужен

А мне посоветуйте пожалуйста вот что...
Таким скриптом ищу картинки
Code: [Select]
for($scrn, $find < 1) 
   GETSCREEN
if_picture_in (200, 200, 450, 400, "sher1.bmp")
            print("Cîâïàäåíèå ñ 1. Ñêðèí # ", $scrn)
            inc($find, 1)
      end_if
     
      if_picture_in (200, 200, 450, 400, "sher2.bmp")
            print("Cîâïàäåíèå ñ 2. Ñêðèí # ", $scrn)
            inc($find, 1)   
      end_if
     
      if_picture_in (230, 230, 450, 400, "sher3.bmp")
            print("Cîâïàäåíèå ñ 3. Ñêðèí # ", $scrn)
inc($find, 1)
      end_if
     
      if_picture_in (230, 230, 450, 400, "sher4.bmp")
            print("Cîâïàäåíèå ñ 4. Ñêðèí # ", $scrn)
inc($find, 1)
      end_if
 end_cyc
Картинок всегда 4 но что бы изменить назначение скрипта нужно изменить названия картинок, так вот нельзя ли как-то названия картинок задавать строковой переменной?
« Last Edit: April 24, 2013, 04:14:37 AM by Вуа »