Добавлен MpW,
опубликован
Lua-программирование для чайников
Содержание:
Все эти функции начинаются с «io.» (сокр. от англ. «input-output» — ‘ввод-вывод’). Главное применение — изменение внутреннего содержания файла непосредственно из Lua-скрипта.
Вот четыре функции, которые понадобятся для этого:
Вот четыре функции, которые понадобятся для этого:
io.open():
Открывает файл по указанному пути в указанном режиме. Режимов всего три:
«r» — режим чтения. Данный режим используется как режим по умолчанию. То есть, если не указать режим, файл откроется в данном режиме;
«w» — режим записи. Вся имеющаяся ранее информация стирается;
«a» — режим дозаписи в конец файла. Вся имеющаяся ранее информация сохраняется.
Путь в свою очередь пишется в кавычках; название файла обязательно должно иметь расширение. Если в указанной директории не существует такого файла, он будет создан.
Открывает файл по указанному пути в указанном режиме. Режимов всего три:
«r» — режим чтения. Данный режим используется как режим по умолчанию. То есть, если не указать режим, файл откроется в данном режиме;
«w» — режим записи. Вся имеющаяся ранее информация стирается;
«a» — режим дозаписи в конец файла. Вся имеющаяся ранее информация сохраняется.
Путь в свою очередь пишется в кавычках; название файла обязательно должно иметь расширение. Если в указанной директории не существует такого файла, он будет создан.
file:write():
Записывает в указанный файл указанные значения. Ими должны быть только строки, числа и управляющие последовательности. file — переменная, открывающая файл (ниже всё станет понятно).
Записывает в указанный файл указанные значения. Ими должны быть только строки, числа и управляющие последовательности. file — переменная, открывающая файл (ниже всё станет понятно).
file:flush():
Сохраняет сделанные изменения в указанном файле.
Сохраняет сделанные изменения в указанном файле.
io.close():
Закрывает указанный файл.
Закрывает указанный файл.
Пример:
Нужно дописать в конец файла script.lua, расположенного в папке data, несколько строк:
Нужно дописать в конец файла script.lua, расположенного в папке data, несколько строк:
-- открываем наш файл в режиме дозаписи в конец файла
local f = io.open("data/script.lua","a");
-- создаём массив из строк, которые необходимо добавить в конец нашего файла
local ns = {
"string1",
"string2",
"string3",
"string4",
"string5",
};
-- сначала записываем первую строку, чтобы между ней и записями в файле была отступлена пустая строка
f:write("\n".."\n"..ns[1].."\n");
-- затем записываем остальные строки кроме последней (её, как и первую, нужно отформатировать отдельно)
for i=2,(table.getn(ns))-1 do
f:write(ns[i].."\n");
end
-- ну и записываем последнюю строку
f:write(ns[table.getn(ns)]);
-- сохраняем сделанные изменения
f:flush();
-- закрываем наш файл
io.close(f);
После открытия файла в конце будет следующее:
[прочие строки, уже имеющиеся в файле]
string1
string2
string3
string4
string5
§15.1. Ещё несколько полезных функций.
io.lines():
Открывает указанный файл в режиме чтения, считывает из него все имеющиеся в нём в строке и возвращает каждую отдельно.
Пример:
Открывает указанный файл в режиме чтения, считывает из него все имеющиеся в нём в строке и возвращает каждую отдельно.
Пример:
local f = io.open("data/script.lua");
for line in io.lines(f) do
print(tostring(line));
end
После конца цикла эта функция автоматически закрывает файл.
file:lines():
То же, что и io.lines, но не закрывает файл file после окончания цикла.
То же, что и io.lines, но не закрывает файл file после окончания цикла.
file:seek():
Получает и выставляет в файле позицию, заданную первым аргументом, им может быть:
Получает и выставляет в файле позицию, заданную первым аргументом, им может быть:
"set" — начало файла;
"cur" — текущая позиция;
"end" — конец файла.
"cur" — текущая позиция;
"end" — конец файла.
Вторым аргументом (число) можно приплюсовать к первому дополнительное количество строк, которое нужно отсчитать от выбранной позиции.
Пример:
f:seek("set",0); -- позиция выставлена в самое начало файла
f:seek("set",1); -- позиция выставлена во второй строке от начала файла вниз
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
Комментарии пока отсутcтвуют.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.