Сохранение данных
Многие из вас наверняка уже начали создавать свои собственные игры и программы. Но хороший софт должен уметь сохранять сеанс, для этого мы сегодня и рассмотрим пример сохранения данных в файл, причём ЛЮБОГО формата.
Записывать для примера мы будем в файлик формата .txt, но вам это делать совершенно не обязательно, вы там хоть .mp3 ставьте) только потом этот файлик проигрывателем не пытайтесь открыть :D
Есть 2 способа записи и считывания данных с файла, первый более универсальный и практичный, второй же - оригинальный
Запись данных в файл(1 способ):
h=1--объявляю переменную h и присваиваю её значение равное 1.
file=io.open("save.txt","w")--открываем файл с пометкой 'w', что означает, что мы намереваемся в него что-то записывать
file:write(" h="..h)--записываем в файлик переменную h, при этом в самом файлике всё это будет выглядеть так ( h=1)
file:close()--заканчиваем работу с открытым на запись файлом
file:write(" h="..h)--записываем в файлик переменную h, при этом в самом файлике всё это будет выглядеть так ( h=1)
file:close()--заканчиваем работу с открытым на запись файлом
.. - это такой синтаксис языка LUA, который позволяет объединять слова в одно предложение, которое мы и будем сохранять.
Этот способ универсален тем, что в файл таким макаром можно записывать множество различных данных
h=1--объявляю переменную h и присваиваю её значение равное 1.
m=2--объявляю переменную m и присваиваю её значение равное 2.
n=3--объявляю переменную n и присваиваю её значение равное 3.
file:write(" h="..h.." m="..m.." n="..n)--в файлике будет это выглядеть так ( h=1 m=2 n=3)
Считывание:
dofile("save.txt")--просто и лаконично
Запись данных в файл(2 способ):
h=1--объявляю переменную h и присваиваю её значение равное 1.
file=io.open("save.txt","w")--открываем файл с пометкой 'w', что означает, что мы намереваемся в него что-то записывать
file:write(h)--записываем в файлик переменную h, при этом в самом файлике всё это будет выглядеть так (1)
file:close()--заканчиваем работу с открытым на запись файлом
file:write(h)--записываем в файлик переменную h, при этом в самом файлике всё это будет выглядеть так (1)
file:close()--заканчиваем работу с открытым на запись файлом
Считывание:
file=io.open("save.txt","r")--открываем файл с пометкой 'r', что означает, что мы намереваемся из него что-то считать
h=tonumber(file:read())--считываем из файлика переменную h, при этом использовав стандартную функцию tonumber(), которая преобразовала текст из файлика в числовую переменную
file:close()--заканчиваем работу с открытым на запись файлом
h=tonumber(file:read())--считываем из файлика переменную h, при этом использовав стандартную функцию tonumber(), которая преобразовала текст из файлика в числовую переменную
file:close()--заканчиваем работу с открытым на запись файлом
Этот способ универсальностью не отличается