Войти

Показать полную графическую версию : [решено] Создать файл средствами AutoIt


Страниц : [1] 2

ZXSpectrum
16-09-2009, 18:27
Доброго времени суток!
Недавно начал разбираться с данной очень полезной софтиной, соответственно возник вопрос:
Можно ли средствами AutoIt создать файл (текстовый, лог, и т.д.)?
В справочнике вроде ничего такого нет, а задача следующая:
получить один екзешник, который должен писать логи определенных событий, при этом сам создавать и удалять файлы логов.
с удалением проблем никаких, а вот как заставить создать?

FlatX007
16-09-2009, 18:29
#include <File.au3>

$LogFile = @ScriptDir & "/Log.txt"
If Not FileExists($LogFile) Then _FileCreate($LogFile)

ZXSpectrum
16-09-2009, 19:48
Большое спасибо, подозревал, что должно быть такое.
А неподскажете, где подробнее почитать (лучше на русском) про #include

FlatX007
16-09-2009, 20:02
Для спасибо - есть специальная кнопочка ;) если ,что ...

Параметры:

#include <filename>

filename - название включаемого файла. path (путь) опционален, но обязан быть строкой, и не может быть переменной.
Если в качестве path используется строка "...", то для включения будет использован filename из текущей по отношению к данному сценарию папки.
Если при указании пути использовать вторую форму записи включения <...>, то поиск файла проводится по пути, относительном к папке include library (обычно, к папке C:\Program Files\AutoIt3\Include). Эта папка содержит много специально предназначенных для использования библиотечных файлов !


Замечания:

Внутрь AutoIt скрипта можно вложить другие скрипты, применяя директиву #include". Слово #include не должно иметь заглавных букв.
Для того, чтобы использовать упрощенный способ вложения - "include libary" (без указания пути) требуется полная установка AutoIt, иначе путь к стандартной библиотеке будет неизвестен, стандартным путем поиска включаемого файла окажется папка Include по отношению к папке текущего сценария, а именно папка @ScriptDir\Include.

Если включить в состав скрипта один и тот же файл многократно, то это вызовет ошибку "Duplicate function". При создании включаемых файлов требуется добавлить в числе первых строк директиву #include-once, позволяющую обеспечить однократное включение файла в состав скрипта.

AutoIt распознает специальное значение раздела реестра "HKEY_CURRENT_USER\Software\AutoIt v3\AutoIt" с названием "Include". Его типом является значение REG_SZ (строка). Содержанием значения может быть список папок, разделенных точкой с запятой, которые следует просматривать в заданном порядке при поиске включаемых файлов директивы #include после просмотра всех стандартных мест расположения включаемых файлов.

Порядок просмотра, применяемый в AutoIt зависит от того, какая из форм #include используется. Ниже представлен перечень стандартно просматриваемых папок для обеих форм #include.

ZXSpectrum
16-09-2009, 20:11
Еще раз спасибо (с кнопочкой)).
несколько не точно сформулировал прошлый вопрос,
имел ввиду описание возможностей файлов в папке include актуальной версии программы.

FlatX007
16-09-2009, 20:31
Для каждой функции свои Инклиды ... Описания функций в хелпе.
Открой любую Include - тум будут названия функций вот в этом "разделе"
; #CURRENT# ==================================================================================================== =================

Creat0R
16-09-2009, 21:51
Для спасибо - есть специальная кнопочка »
Увы, но я сам недавно узнал (не замечал, сам и грешил), что...

Также в сообщение запрещается включать просьбу об отметке его полезным, однако для такой просьбы можно использовать подпись.
Общие правила форума (http://forum.oszone.net/rules.html) (п. 3.20).

Т.ч первое предупреждение :)

ZXSpectrum
16-09-2009, 22:30
2Moderator: не надо быть особо строгими к тем, кто действительно помог решить проблему.
я плюсанул за дело, а то что мне указали на кнопку...
Это мой невнимательность...

Creat0R
16-09-2009, 23:26
не надо быть особо строгими к тем, кто действительно помог решить проблему »
Это по вашему строгость? :drug:
И то что кто-то помагает другим, ещё не даёт ему право нарушать правила форума.

А вам кстати предупреждение за нарушение другого правила (п. 3. 17), касающегося обсуждению действии модераторов.

то что мне указали на кнопку...
Это мой невнимательность »
Ну да, ваш, т.к не только над каждым сообщением эта ссылка есть, но ещё и при создании темы вам напоминают:

Внимание! На конференции принято отмечать полезные сообщения (http://forum.oszone.net/faq.php?faq=vb_board_usage#faq_thanks) отвечающих в теме участников и помечать тему решенной (http://forum.oszone.net/faq.php?faq=vb_board_usage#faq_solved_thread_faq) после получения ответа на свой вопрос!

Sayan
11-03-2010, 17:42
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is some text.")

почему у меня текст непишется, просто токо блокнот запускается и все?

madmasles
11-03-2010, 18:35
Sayan,
Потому, что, похоже, у Вас русский язык по умолчанию. Поменяйте 2-строку на WinWaitActive("Безымянный - Блокнот")а лучше на WinWaitActive("[Class:Notepad]")

gregaz
11-03-2010, 18:46
Можно ли средствами AutoIt создать файл (текстовый, лог, и т.д.)? »

Еще вариант : Достаточно открыть файл для записи и он уже создан :
$LogFile="test10.txt"
If Not FileExists($LogFile) Then $file = FileOpen($LogFile, 1); Флаг = 1 или 2

madmasles
11-03-2010, 18:56
gregaz,
Посмотрите функцию _FileCreate() в Диск:\Program Files\AutoIt3\Include\File.au3 ;)

gregaz
11-03-2010, 19:01
Посмотрите функцию _FileCreate() в Диск:\Program Files\AutoIt3\Include\File.au3 »
Посмотрел и...?

Yashied
11-03-2010, 19:19
gregaz прав, зачем использовать UDF, если для этого есть родная функция. Нонсенс.

madmasles
11-03-2010, 19:29
А для чего вообще нужна функция _FileCreate(), если есть "родная функция"?
В UDF, кажется, очень много функций, которые составлены из "родных функций". Это же не значит, что надо "изобретать велосипед" заново?

Yashied
11-03-2010, 20:59
В UDF, кажется, очень много функций, которые составлены из "родных функций". »

Даже более того, все UDF полностью составлены из родных функций.

madmasles
11-03-2010, 21:03
все UDF полностью составлены из родных функций. »Тем более, зачем "изобретать велосипед"? :)

Sayan
11-03-2010, 21:13
у меня даже примери те что идут с установкой AutoIt неработают почемуто, и по умолчанию роскладка стоит на Анлийском

madmasles
11-03-2010, 21:39
у меня даже примери те что идут с установкой AutoIt неработают почемуто »Какие конкретно?




© OSzone.net 2001-2012