Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: justitdo on September 24, 2015, 03:11:40 PM
-
Здравствуйте. Подскажите, пожалуйста, код для создания копии заданного файла. Мне нужно, чтобы в конце моего скрипта, создавалась копия текстового файла, к примеру 1.txt, и каждый раз заменяла стаую.
-
Создай бат файл "Run.bat" с такой строкой (ну естественно путь к файлу у тебя будет свой)
copy /Y "C:\Clickermann\projects\Мой проект\1.txt" "C:\Clickermann\projects\Мой проект\1_copy.txt"
В скрипте напиши такую команду
EXECUTE("Run.bat")
Если не знаешь, Бат файл это обычный текстовый файл только с расширением .bat
-
Очень интересный подход! :o А можно поинтересоваться; нафига Козе баян? ::)
Если создаётся именно копия, а не чем-то отличный файл и потом сохраняется с тем-же названием в том же месте, а оригинал удаляется, то в чем ссуть? :-\
Поинтересоваться можно конечно. Оригинал не удаляется, удаляется старая копия и перезаписывается новой. А баян Козе для того, чтобы не потерять данные, что собственно сегодня у меня и произошло, как раз во время записи данных в файл обрубили электричество, в итоге пустой текстовик и потерянная база за несколько месяцев работы скрипта, если бы я неделю назад ручками копию не сделал.
-
Создай бат файл "Run.bat" с такой строкой (ну естественно путь к файлу у тебя будет свой)
copy /Y "C:\Clickermann\projects\Мой проект\1.txt" "C:\Clickermann\projects\Мой проект\1_copy.txt"
В скрипте напиши такую команду
EXECUTE("Run.bat")
Если не знаешь, Бат файл это обычный текстовый файл только с расширением .bat
Спасибо, сделал)
-
Поинтересоваться можно конечно. Оригинал не удаляется, удаляется старая копия и перезаписывается новой. А баян Козе для того, чтобы не потерять данные, что собственно сегодня у меня и произошло, как раз во время записи данных в файл обрубили электричество, в итоге пустой текстовик и потерянная база за несколько месяцев работы скрипта, если бы я неделю назад ручками копию не сделал.
чтото тут не вяжется. если ты пишеш в файл, то с какого токого он очистился при выкл эл-ве?!
ты же не в переменных держиш данные, а записываеш их в файл. другое дело что вырубило эл-во в момент записи и строка запишется с ошибкой хоть и вероянтность этого ничтожно мала, запись происходит за мс-ды, но все равно все данные записанные ранее не куда не денутся.
насчет батника, можно упростить. путь к текстовым файлам можно записать относительно бат-файла. вот вариант, если бат-файл находится в одной папке с текстовиками.
copy /Y %~dp0\1.txt %~dp0\1_copy.txt
-
чтото тут не вяжется. если ты пишеш в файл, то с какого токого он очистился при выкл эл-ве?!
ты же не в переменных держиш данные, а записываеш их в файл. другое дело что вырубило эл-во в момент записи и строка запишется с ошибкой хоть и вероянтность этого ничтожно мала, запись происходит за мс-ды, но все равно все данные записанные ранее не куда не денутся.
Там в файле одна строка, она сначала удаляется, а потом записывается новая вместо нее. Комп потух в тот момент, когда старая строка удалилась, а новая записаться еще не успела, в итоге пустой файл. Хоть и милисекунды, но инфа из файла вполне успешно теряется если остановить скрипт в это время, проверено.
И еще вопросик заодно. Как сделать, чтобы можно было видеть сколько раз определенное условие совпало, а сколько - нет?
-
Зачем тут мудрить с копированием если все это можно делать из скрипта.
Образец. Перед записью создается копия каждый раз в новый файл.
TFWRITE(STRCONCAT("Baza_BAK_"$_date_y,"_",$_date_m,"_",$_date_d,"-",$_time_h,"_",$_time_m,"_",$_time_s,".txt")
, TFREAD("Baza.txt", 1))
TFCLEAR("Baza")
TFWRITE("Baza.txt", "New string")
На счет условий, можно писать статистику в INI.
SUB(log,$name,$par) // подпрограмма в верхней части скрипта
IF($par = 1)
$n = INT(INIREAD("Log.ini", "Сработало", $name))
INC($n,1)
INIWRITE("Log.ini", "Сработало", $n, $name)
ELSE
$n = INT(INIREAD("Log.ini", "Не сработало", $name))
INC($n,1)
INIWRITE("Log.ini", "Не сработало", $n, $name)
END_IF
END_SUB
// log("A",1) // образец, первый параметр имя, второй Верно 1 не верно 0
IF($a = 3)
log("Условие A",1) // вызов подпрограммы с передачей параметров
ELSE
log("Условие A",0)
END_IF
-
Если честно, совсем ничего не понял)
Вот к примеру часть моего скрипта:
$strclip = FROMCLIP()
WAITMS(50)
$comp = TFREAD("1.txt", 1)
WAITMS(50)
$action = STRPOS($comp, $strclip)
IF($action > 0)
KEYPRESS(#A)
ELSE
TFDELETE ("1.txt", 1)
WAITMS(50)
TFWRITE("1.txt", STRCONCAT($comp,$strclip," "))
WAITMS (150)
KEYPRESS(#B)
END_IF
Куда что писать, чтобы записывалось в ini сколько раз нажалась клавиша A и сколько раз B ? И еще, что происходит с форумом? Зайти сюда получается только с нескольких десятков попыток, все время вылетают ошибки базы данных.
-
Вот что у тебя должно получиться
SUB(log,$name,$par) // подпрограмма в верхней части скрипта
IF($par = 1)
$n = INT(INIREAD("Log.ini", "Сработало", $name))
INC($n,1)
INIWRITE("Log.ini", "Сработало", $n, $name)
ELSE
$n = INT(INIREAD("Log.ini", "Не сработало", $name))
INC($n,1)
INIWRITE("Log.ini", "Не сработало", $n, $name)
END_IF
END_SUB
// образец, первый параметр имя, второй Верно 1 не верно 0
// log("A",1)
$strclip = FROMCLIP()
WAITMS(50)
$comp = TFREAD("1.txt", 1)
$action = STRPOS($comp, $strclip)
IF($action > 0)
log("action",1)
KEYPRESS(#A)
ELSE
log("action",0)
TFWRITE(STRCONCAT("1_BAK "$_date_y,"-",$_date_m,"-",$_date_d," ",$_time_h,"-",$_time_m,"-",$_time_s,".txt"),$comp) // делаем бэкап
TFCLEAR("1.txt") // очищаем
TFWRITE("1.txt", STRCONCAT($comp,$strclip," ")) // записываем новые данные
WAITMS (150)
KEYPRESS(#B)
END_IF
Дело не в форуме а в хостере на котором находится много форумов и из за нагрузки такое частенько случается.