Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Qwerry on October 11, 2017, 03:25:33 PM
-
Доброго времени суток.
Имеется папка, в которой находится несколько картинок (их количество может меняться). Нужно занести в массив все названия файлов из этой папки.
Подскажите, пожалуйста, как можно реализовать?
(Конечная цель - поиск по очереди этих картинок. Понимаю, что можно назвать их в духе 1, 2, 3, но не хотелось бы задавать количество картинок вручную)
-
Требуется последняя бетта 4.13 Там функция GETFILELIST заработала как надо.
http://crapware.aidf.org/forum/index.php?topic=356.msg23510#msg23510 (http://crapware.aidf.org/forum/index.php?topic=356.msg23510#msg23510)
$path = "Image\" // Путь до папки с картинкой
GETFILELIST($a_image, STRCONCAT($path,"*.bmp")) // Получаем список файлов в массив
GETSCREEN
FOR($i=0,$i<ARRSIZE($a_image)) // Перебор списка
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($path,$a_image[$i]), -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
END_CYC
-
Классно) Спасибо, буду осваивать новую версию :)
-
Требуется последняя бетта 4.13 Там функция GETFILELIST заработала как надо.
http://crapware.aidf.org/forum/index.php?topic=356.msg23510#msg23510 (http://crapware.aidf.org/forum/index.php?topic=356.msg23510#msg23510)
$path = "Image\" // Путь до папки с картинкой
GETFILELIST($a_image, STRCONCAT($path,"name[b]*[/b].bmp")) // Получаем список файлов в массив
GETSCREEN
FOR($i=0,$i<ARRSIZE($a_image)) // Перебор списка
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT($path,$a_image[$i]), -1, 100)
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
END_CYC
вопрос следующий, как выполнить файл из списка при помощи radiobox("Выберете пункт", $arr[0]):
у меня есть проекты по Работе, Домашние, Игры, Прочие... работа_name.cms, картинки_name.cms...
GETFILELIST($arr, "Script\name[b]*[/b].cms")) // Получаем список файлов в массив
for($i=0, $i< arrsize($arr))
print($arr[$i])
end_cyc
$res = radiobox("Выберете пункт", [b]$arr[/b]) - как вместо $arr вставить переменную (количество) найденных файлов
...
а после выбора реализовать запуск нужного скрипта?
другими словами хочу создать меню проектов.
-
Очевидно так, а в чем смысл.
GETFILELIST($arr, "Script\name[b]*[/b].cms") // Получаем список файлов в массив
for($i=0, $i<arrsize($arr))
print($arr[$i])
end_cyc
$res = RADIOBOX("Выберете пункт", arrsize($arr))
-
Очевидно так, а в чем смысл.
$res = RADIOBOX("Выберете пункт", arrsize($arr))
так он выводит количество найденных файлов
я пока остановился на таком решении:
TFCLEAR("file.cms", 0)
...
getfilelist($arr, $list) //$list предменю с путями, тут не указан
for($i=0, $i< arrsize($arr))
print($arr[$i])
end_cyc
for($i=arrsize($arr), $i< 21)
ARRPUSH($arr, "пусто")
end_cyc
$res = radiobox("Выберете пункт", $arr[0], $arr[1], $arr[2], $arr[3], $arr[4], $arr[5], $arr[6], $arr[7], $arr[8], $arr[9], $arr[10], $arr[11], $arr[12], $arr[13], $arr[14], $arr[15], $arr[16], $arr[17], $arr[18], $arr[19], $arr[20])
if ($res > 0)
print("Вы выбрали: ", $arr[$res-1])
DEFINE($var, $arr[$res-1])
TFREADARR($var, $a)
TFWRITEARR("file.cms", $a)
else
print("Вы ничего не выбрали")
end_if
WAIT(3)
#include "file.cms"
halt
но возникла проблемма с #include "file.cms" он почему то запускается первым, то есть я указал на нужный файл, он его записывает в file.cms, но #include запускается до выполнения всего скрипта, получается, при последующих запусках, запускается предыдущий файл, хотя файл обновляется сразу...
-
Кирил описал выше в чем дело. Так что скрипт должен выглядеть примерно так:
$list = "E:\test\*.*"
getfilelist($arr, $list)
for($i=0, $i< arrsize($arr))
print($arr[$i])
end_cyc
for($i=arrsize($arr), $i< 21)
ARRPUSH($arr, "пусто")
end_cyc
$res = radiobox("Выберете пункт‚", $arr[0], $arr[1], $arr[2], $arr[3], $arr[4], $arr[5], $arr[6], $arr[7], $arr[8], $arr[9], $arr[10], $arr[11], $arr[12], $arr[13], $arr[14], $arr[15], $arr[16], $arr[17], $arr[18], $arr[19], $arr[20])
if ($res > 0)
print("Вы выбрали: ", $arr[$res-1])
else
print("Вы ничего не выбрали")
end_if
WAIT(1)
SWITCH($res)
CASE(1)
#include "E:\test\test1.cms"
CASE(2)
#include "E:\test\test2.cms"
CASE(3)
#include "E:\test\test3.cms"
CASE(4)
#include "E:\test\test4.cms"
CASE(5)
#include "E:\test\test5.cms"
END_SWITCH
halt
Только вот у меня почему то в последней версии КМ инклуд с полным путем не работает :-\ . Пишет что файла такого нет... а он то есть. Не пойму в чем дело, мож защита в ОС какая...
Глянул в справку:
#include - Вставляет в это место содержимое текстового файла из папки проекта.
так что придется извернуться как-то по другому.
-
Только вот у меня почему то в последней версии КМ инклуд с полным путем не работает :-\ . Пишет что файла такого нет... а он то есть
Вероятно, русское название одной из папок пути или не читаемые символы в названии.
Да не, потестил в разных каталогах, и прямо из корня диска, ни в какую. В 4.13 выдает ошибку об отсутствии файла, в старших версиях просто скрипт с инклудом не запускается.
Если путь относительно папки проекта, то все норм, даже если инклуд в подкаталоге (относительно папки проекта).
-
Только вот у меня почему то в последней версии КМ ...
решили проблему по другому, но столкнулись с новой проблемой :) на 4.12 работает, а на 4.13 нет
$list_1 = INPUTBOX("message", "", 10)
print($list_1)
if ($list_1 = 0)
print("Отмена")
halt
end_if
getfilelist($arr, "*"$list_1"*.cms")
print($arr)
for($i=arrsize($arr), $i< 21)
ARRPUSH($arr, "Пусто")
end_cyc
$list_2 = radiobox("Выберете название скрипта:", $arr[0], $arr[1], $arr[2], $arr[3], $arr[4], $arr[5], $arr[6], $arr[7], $arr[8], $arr[9], $arr[10], $arr[11], $arr[12], $arr[13], $arr[14], $arr[15], $arr[16], $arr[17], $arr[18], $arr[19], $arr[20])
if ($list_2 > 0)
$list_3 = DIALOGBOX("Вы выбрали: "$arr[$list_2-1],4,2)
if ($list_3 = 6)
print("Вы выбрали: ",$arr[$list_2-1])
TFCLEAR("Script_Start_Config.cms", 0)
TFREADARR($arr[$list_2-1], $ara)
TFWRITEARR("Script_Start_Config.cms", $ara)
TFWRITE("Script_Start_Config.cms", "#Autorun")
EXECUTE("Script_Start_Config.bat")
HALT(1)
else
print("Отмена")
halt
end_if
else
print("Отмена")
halt
end_if
"*"$list_1"*.cms" в 4.12 понимает что от него хотят, ищет искомое слово на кириллице, в 4.13 на русском точно не ищет если проблема в этом.
start ../Clickermann.exe Script_Start_Config.cms
-
А что это вообще такое?
getfilelist($arr, "*"$list_1"*.cms")
что за набор символов.
Возможно там должно быть что-то вроде этого:
getfilelist($arr, STRCONCAT($list_1, "\*.cms"))
Ещё с ранних сообщений кочует вот такая строка с обрывками тэгов, тоже хрень
GETFILELIST($arr, "Script\name[b]*[/b].cms"))
-
Может, ну его встроенный радио? Ему жёстко прописывать нужно пункты и с этим или морока или некрасиво.
#include "Window.cms"
$path = INPUTBOX("Введите путь", "", 10)
IF($path = 0)
LOGWRITE("Отмена")
HALT
END_IF
$path = STRCONCAT($path, "\")
LOGWRITE("задан путь: ", $path)
GETFILELIST($items, STRCONCAT($path, "*.cms"))
IF(ARRSIZE($items) = 0)
LOGWRITE("В директории нет подходящих файлов")
HALT
END_IF
FOR($i=0, $i < ARRSIZE($items))
LOGWRITE($items[$i])
END_CYC
Window_select(101, "Запустить скрипт:", 10) // ещё вариант вместо 101, указать 102
IF($return = -1)
LOGWRITE ("Кнопка не нажата, время вышло или окно закрыто принудительно")
ELSE
LOGWRITE("Запускаем ", $items[$return-1])
EXECUTE(STRCONCAT($path, $items[$return-1]))
END_IF
HALT
-
А что это вообще такое?
getfilelist($arr, "*"$list_1"*.cms")
что за набор символов.
это строка поиска, найти список файлов содержащие $list_1, да все, тему можно считать закрытой, код доработали, все работает, всем спасибо.
-
это строка поиска, найти список файлов содержащие $list_1, да все, тему можно считать закрытой, код доработали, все работает, всем спасибо.
Что хотели получить я понял, вопрос был о синтаксисе. Написано неправильно и если даже оно на какой-то версии могло проскочить, так писать не нужно, чтоб потом не искать причины неправильной работы.
Тогда так должно быть
getfilelist($arr, STRCONCAT("*", $list_1, "*.cms"))
-
... так писать не нужно, чтоб потом не искать причины неправильной работы.
Тогда так должно быть
getfilelist($arr, STRCONCAT("*", $list_1, "*.cms"))
понял, попробую, возможно из-за этого и не работал на 4.13
-
Искал информацию по функции GETFILELIST(), насколько понял, написал такой код
// выведем отладочные сообщения
$line = STRCONCAT("Получим список файлов в папке D:\MyFolder\*.csv")
TFWRITE("log.txt",$line)
GETFILELIST($files, "D:\MyFolder") // Получаем список файлов в массив
$line = STRCONCAT("В папке D:\MyFolder найдено файлов: ",ARRSIZE($files))
TFWRITE("log.txt",$line)
работает.
В справке сказано
История развития программы
v4.13.014 (16.05.18)
+ Ядро
+ Переход на Юникод, теперь в файлах применяется кодировка UTF-8
+ Создана 64-битная версия программы
....
+ Доработка KEYSTRING(), теперь он сам жмет Shift
+ Исправление GETFILELIST()
+ Исправление GETDIRLIST()
в самой справке описания функции нет. Подскажите как ею пользоваться -что можно, а что нельзя.
И еще бы по GETDIRLIST().
Спасибо
-
Последняя стабильная версия 4.13, справка:
(https://i.imgur.com/RAgUg65.png)
Бета 4.14, справка:
(https://i.imgur.com/SbgtwGk.png)
-
Да, ступил, извиняюсь :-\
Я искал поиском в справке и не нашел почему то. А сейчас поиск сразу дал результат.
Больше ничего в оправдание сказать не могу :-X