Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Создать файл средствами AutoIt (http://forum.oszone.net/showthread.php?t=150709)

ZXSpectrum 16-09-2009 18:27 1220417

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

FlatX007 16-09-2009 18:29 1220419

Код:

#include <File.au3>

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


ZXSpectrum 16-09-2009 19:48 1220459

Большое спасибо, подозревал, что должно быть такое.
А неподскажете, где подробнее почитать (лучше на русском) про #include

FlatX007 16-09-2009 20:02 1220471

Для спасибо - есть специальная кнопочка ;) если ,что ...

Параметры:

#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 1220478

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

FlatX007 16-09-2009 20:31 1220494

Для каждой функции свои Инклиды ... Описания функций в хелпе.
Открой любую Include - тум будут названия функций вот в этом "разделе"
Код:

; #CURRENT# =====================================================================================================================

Creat0R 16-09-2009 21:51 1220576

Цитата:

Цитата FlatX007
Для спасибо - есть специальная кнопочка »

Увы, но я сам недавно узнал (не замечал, сам и грешил), что...

Цитата:

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

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

ZXSpectrum 16-09-2009 22:30 1220612

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

Creat0R 16-09-2009 23:26 1220650

Цитата:

Цитата ZXSpectrum
не надо быть особо строгими к тем, кто действительно помог решить проблему »

Это по вашему строгость? :drug:
И то что кто-то помагает другим, ещё не даёт ему право нарушать правила форума.

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

Цитата:

Цитата ZXSpectrum
то что мне указали на кнопку...
Это мой невнимательность »

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

Цитата:

Внимание! На конференции принято отмечать полезные сообщения отвечающих в теме участников и помечать тему решенной после получения ответа на свой вопрос!

Sayan 11-03-2010 17:42 1366316

Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is some text.")

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

madmasles 11-03-2010 18:35 1366373

Sayan,
Потому, что, похоже, у Вас русский язык по умолчанию. Поменяйте 2-строку на
Код:

WinWaitActive("Безымянный - Блокнот")
а лучше на
Код:

WinWaitActive("[Class:Notepad]")

gregaz 11-03-2010 18:46 1366384

Цитата:

Цитата ZXSpectrum
Можно ли средствами AutoIt создать файл (текстовый, лог, и т.д.)? »

Еще вариант : Достаточно открыть файл для записи и он уже создан :
Код:

$LogFile="test10.txt"
If Not FileExists($LogFile) Then $file = FileOpen($LogFile, 1)
; Флаг = 1 или 2


madmasles 11-03-2010 18:56 1366388

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

gregaz 11-03-2010 19:01 1366392

Цитата:

Цитата madmasles
Посмотрите функцию _FileCreate() в Диск:\Program Files\AutoIt3\Include\File.au3 »

Посмотрел и...?

Yashied 11-03-2010 19:19 1366406

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

madmasles 11-03-2010 19:29 1366409

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

Yashied 11-03-2010 20:59 1366459

Цитата:

Цитата madmasles
В UDF, кажется, очень много функций, которые составлены из "родных функций". »

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

madmasles 11-03-2010 21:03 1366462

Цитата:

Цитата Yashied
все UDF полностью составлены из родных функций. »

Тем более, зачем "изобретать велосипед"? :)

Sayan 11-03-2010 21:13 1366467

у меня даже примери те что идут с установкой AutoIt неработают почемуто, и по умолчанию роскладка стоит на Анлийском

madmasles 11-03-2010 21:39 1366487

Цитата:

Цитата Sayan
у меня даже примери те что идут с установкой AutoIt неработают почемуто »

Какие конкретно?

Yashied 11-03-2010 21:49 1366502

А если поставить задержку Sleep(1000) перед Send()?

Sayan 11-03-2010 22:04 1366512

calculator, notepad1 ,notepad2 и в других какието ошибки, может у меня какойто левая инсталяха--хотя скачивал с силки oszone. пришлите мне ссилку от куда ви качали -так на свякий случай

Yashied 11-03-2010 22:28 1366526

Цитата:

Цитата Sayan
calculator, notepad1 ,notepad2 и в других какието ошибки, может у меня какойто левая инсталяха »

Sayan, ты говоришь загадками. Какие ошибки? Где ошибки? "Инсталяха" чего? Вот ссылка на AutoIt с оффициального сайта:

http://www.autoitscript.com/cgi-bin/...t-v3-setup.exe

Sayan 12-03-2010 02:36 1366636

ну какие зхагадки? вообщем я запускаю C:\Program Files\AutoIt3\Examples\notepad1.au3 а оно просто блокнот запускает и все и ничего неделает. как мне сделать чтобы запускался блокнот и писалося само (ПРИВЕТ)-например?

gregaz 12-03-2010 08:54 1366718

Цитата:

Цитата Sayan
ну какие зхагадки? вообщем я запускаю C:\Program Files\AutoIt3\Examples\notepad1.au3 а оно просто блокнот запускает и все и ничего неделает. как мне сделать чтобы запускался блокнот и писалося само (ПРИВЕТ)-например? »

Шапка ( Title ) появляющегося блокнота на каком языке ? В шапке какой текст ?
Судя по всему у тебя проблема с переключением раскладок клавиатуры , если даже Калькулятор не запускается.
После запуска примеров скрипта раскладка должна автоматически установиться на Inglish.
Утебя устанавливается ?

Sayan 12-03-2010 16:06 1367060

да, ставится English, но я пробую Au3Record то все записует что я делаю на екране--так работает


Время: 19:56.

Время: 19:56.
© OSzone.net 2001-