Найти тему

Работа с файлами в QLUA

Всем привет!

Давно я не делал выпусков. Дело в том, что, начав вести данный канал, в какой-то момент у меня начали появляться различные мысли и идеи, на реализацию которых потребовалось время и энергия. И я отвлекся на реализацию новый идей в части написания скриптов на QLUA. Что-то получилось, что-то не очень. Но, однозначно я продвинулся в части написания скриптов на QLUA, освоил новые инструменты, и понемногу буду делиться своими новыми знаниями на этом канале.

Сегодня я расскажу о способах работы с фалами в QLUA, а именно с двумя возможностями:

  1. Подключение к своему скрипту другого блока с кодом.
  2. Запись скриптом в файл любой информации (например, какого-нибудь отчета).

Итак, поехали.

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

На самом деле это делается просто. Нужно использовать команду

dofile (filename)

В скобках в кавычках нужно прописать наименование подключаемого файла.

Давайте создадим два файла:

Файл file0.lua

perem = "Hello from Tomsk!";

Скачать файл

Посмотреть файл (хотя что там смотреть?)

Файл file.lua

function main()
dofile ("file0.lua")
message("текст сообщения: "..perem);
end

Скачать файл

Посмотреть файл (да и тут смотреть особо нечего. :-))

Думаю, что тут всё просто. В файле file.lua идет подключение файла file0.lua, в котором определена переменная perem. И потом в файле file идёт вывод этой переменной. Если Вы создадите два таких файла и запустите, то увидите сообщение:

-2

Надеюсь, что тут всё ясно.

Теперь рассмотрим вопрос записи информации в файл.

В данном случае нам необходимо выполнить три действия:

  • Открыть нужный файл на чтение;
  • Записать в файл информацию;
  • Закрыть обращение к файлу.

Вот три строки, которые соответствуют этим трём операциям:

FileWrite = io.open(FileName, "a");
FileWrite:write(result_to_report);
FileWrite:close();

Здесь, FileWrite – переменная, которую мы используем для обращения к файлу.

FileName – текстовая переменная с именем файла, в который мы будем записывать информацию.

result_to_report – переменная, содержащая информацию, которая будет записана в файл.

Отдельно стоит остановиться на первой строке:

«w» – режим записи в файл с удалением содержимого файла (перезапись);

«a» – режим записи в файл с добавлением к содержимому файла.

Еще пара слов про наименование файла, в который будет вестись запись. Для вышерассмотренного примера, это переменная FileName.

Если в данной переменной будет просто наименование файла, например «result.txt», то рядом с исполняемым файлом будет создан такой файл и в него будут записаны данные. Если Вы захотите записывать файл в другое место, например, в папку, рядом с исполняемым файлом, то нужно прописать в переменную путь «reports/result.txt». И, что важно, нужно вручную создать такую папку «reports». К сожалению, QLUA сам не создает таким образом папки.

Для закрепления данной информации, давайте создадим такой простой файл:

function main()
FileName = "result.txt"
result_to_report = "Данные, которые будут записаны в файл.\n";
FileWrite = io.open(FileName, "a");
FileWrite:write(result_to_report);
FileWrite:close();
end

Скачать код

Посмотреть код

Если запустить данный код, то, рядом с запускаемым файлом появится файл «result.txt» с записанной информацией.

На сегодня у меня все.

⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇

📃 Краткое содержание данного канала.

➖➖➖➖➖➖➖➖➖➖➖➖➖

Landingcentr.ru - разработка сайтов для малого и среднего бизнеса.

⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆⬆

Пишите в комментариях все ли Вам понятно. Получилось ли запустить код.

Всем пока!