Как в Autoit работать с файлами?

single-image

Мы создаем множество переменных, которые используем для хранения различных фрагментов данных в наших скриптах. Но эта информация хранится в программе без возможности «вытащить ее». Более того, когда программа закрывается, информация теряется. Одним из способов получения информации, доступной извне, и сохранения ее на долго является создание файла и запись информации в него.

FileOpen

Во-первых, нам нужно «открыть» новый файл с помощью функции FileOpen (которую также можно использовать для открытия существующего файла).

FileOpen имеет два параметра: имя файла (которое должно включать путь к нашему файлу) и необязательный параметр «mode», используемый для определения определенных параметров, например, переписываем ли мы данные в файл, добавляем и т.д.

Одна строка кода создаст наш новый файл:

  1. Это макрос. Теперь нам нужно понять, что этот макрос является ярлыком, который предоставляет путь к каталогу, в котором находится наш скрипт. Если бы у нас не было этого ярлыка, нам пришлось бы использовать полный путь, такой как «c: \ documents and settings \ user \ files \ autoit\myfile.txt». Другое преимущество заключается в том, что наша программа может запускаться на компьютерах других людей, которые имеют разные папки и каталоги. Если их папки отличаются, ваша программа может не работать. Использование макроса гарантирует, что независимо от пути — ваш скрипт найдет его. Обратите внимание на использование амперсанда и обратную косую черту перед именем файла. Это добавляет обратную косую черту и имя файла в путь к скрипту.
  2. Это то, как мы навезем наш файл. В нашем случае «myfile.txt».
  3. Это дополнительный параметр режима. В этом случае мы используем 2, который сигнализирует функции, что мы хотели бы перезаписать все, что находится в файле.

FileOpen возвращает «дескриптор», который мы сохраняем в нашей переменной $ myFile, когда эта строка кода выполняется. Вы можете использовать этот дескриптор для последующих функций файла.

FileWrite

Теперь нам нужно добавить некоторые данные в наш файл. Для этого создадим форму с полем для ввода имени файла($input_filename), текта  файла($input_filetext) и кнопку, которая будет вызывать функцию создающую новый файл. Возьмем переменную из поля $input_filetext и запишем ее в наш вновь созданный файл с помощью функции FileWrite.

FileWrite имеет два параметра: имя файла или дескриптор файла и строку.

 

В приведенном выше примере мы вызвали функцию FileWrite с дескриптором имени файла, который мы получили из поля функцией GUICtrlRead в первой строке кода, что означает, что мы сделаем запись в файл txt, расположенный в том же каталоге, что и наш скрипт. Второй параметр взят из поля input с дескриптором $input_filetext, куда можно ввести текст который надо записать в файл.

Если файл все еще открыт, он не будет использоваться. Чтобы закрыть его, мы вызываем функцию FileClose, которая имеет только один параметр Filename / handle. Результат работы можно записать поле edit.

 

Если вы откроете файл, вы увидите следующее:

 

StringSplit

Так же, как с несколькими строками кода, мы создали файл. Это был очень упрощенный пример. Что если бы мы хотели создать файл персонализированных приветствий, сгенерированных нами.Как это будет выглядеть?

 

  1.  Мы создаем наш файл так же, как и в предыдущем примере.
  2.  Мы разбиваем имена на массив, используя StringSplit.
  3.  Пишем приветствия в наш файл.
  4.  После завершения цикла for скрипт будет продолжен.
  5. Следующее, что мы делаем, это закрываем файл.

Теперь, когда мы снова откроем наш файл, мы увидим следующее:

 

FileRead

К этому моменту мы успешно создали файл, в него данные и закрыли его, чтобы мы могли получить доступ к нему и просмотреть его содержимое. Этот последний шаг, когда мы вручную нашли файл и открыли его, могут также быть автоматизированным. FileRead — это функция AutoIt, которая, как следует из названия, позволяет нам программно читать файл. Он имеет один обязательный параметр для имени файла / дескриптора. Он также имеет необязательный параметр, если вы хотите ограничить количество прочитанных символов.

В приведенном выше коде мы создали переменную $ fileIn для хранения содержимого файла, считанного с помощью функция FileRead. Файл, который мы читаем, тот же, который мы только что создали. Поэтому, когда мы ставим содержимое переменной $fileIn в поле сообщения мы увидим следующее:

FileOpenDialog

Существует еще одна отличная функция, которая откроет окно поиска файла или каталога, чтобы пользователь мог выберите данный файл. Это функция FileOpenDialog. Вместо жесткого указания файла, который мы хотели прочитать в нашем предыдущем примере, мы могли бы просмотреть и выбрать его вручную.

 

Этот код создаст диалоговое окно с открытием нового файла с заголовком «Выбрать файл», который по умолчанию будет отображаться доступные файлы в начальном каталоге, который мы указали, — в этом случае наш каталог скриптов. Последний параметр — это фильтр. В нашем случае нас интересует только просмотр текстовых файлов. Если вы запустите код и у вас все еще есть файл, который мы создали ранее в главе вашего каталога скриптов, вы должны увидеть следующие:

 

Код и файл проекта можно скачать ниже по ссылке:

[sdm_download id=»660″ fancy=»2″]

 

 

Оставьте свой отзыв

Your email address will not be published.

Вам может понравиться

Новые записи
post-image

Удивительный Autoit

Библиотеки AutoIt
post-image

Генератор фильтра для ошибок (Vitacard)

Vitacard(АИС РМИАЦ) , Аutoit , Утилиты и программы
Загрузить еще