Перейти к содержимому
  • 0
Progger_coder

[OC] Как сохранить переменную после перезагрузки

Вопрос

Я скорее всего чисто для себя, и тренировки, пытаюсь сделать что-то типа MineOs.

Так вот, возможно я сильно тупой, и ошибка очень проста. Но:

У меня есть установщик, в нём я указываю логин и пароль.
981701750_.PNG.01768abbc1a662ef6391a1594e2d174c.PNG                   

        

 

 

Потом как видно,

Пытаюсь записать их в переменные..

И затем происходит перезагрузка, с измененным boot.lua. Который одкрывает мой "ОС".

Собственно там должен отобразится логин, и нужно ввести правельный пароль. Только пароль не распознается.

И вместо логина "Label" Естетственно загрузить данные я пытаю так:

2034087373_.PNG.acb8042f668bebb4494cec27ea9524bb.PNG

Наверное это должно быть возможно, тк существует MineOs. 

Может как-нибудь делать запись этих данных в файл? (Измененно, нашёл команды)

file = io.open
file:write("")
file:read()

Попробую с ними

(Извените за возможные ошибки, и наверое, тупой вопрос :))

Изменено пользователем Progger_coder
Возможное решение

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Проблема в том, что ты записываешь данные о логине/пароле в оперативную память, которая по аналогии с реальной жизнью энергозависима - т.е. при выключении/перезагрузке компьютера она очищается. Ну и да, ты прав, логичным решением проблемы будет использовать ПЗУ вместо ОЗУ

 

А вариантов хранения данных довольно много. Например, вот самый простой, когда логин хранится в отдельном файле а-ля login.txt

local io = require("io")

-- Запись
local login = "MyNickName"
local file = io.open("/login.txt", "w")
file:write(login)
file:close()

-- Чтение
local file = io.open("/login.txt", "r")
local login = file:read("*a")
file:close()

Или вот более комплексный, позволяющий сохранять конфиги твоих разработок в виде сериализованных (сконвертированных в строку) луа-таблиц (массивов), а затем читать их из файла. В майноське, как и в 99% софта, реализован плюс-минус он:

local io = require("io")
local serialization = require("serialization")

-- Запись
local config = {
  login = "MyNickName",
  lastAuthorization = "09.04.2022 15:00:00",
  interfaceColor = 0xFF0000
}

local file = io.open("/config.txt", "w")
file:write(serialization.serialize(config))
file:close()

-- Чтение
local file = io.open("/login.txt", "r")
local config = serialization.deserialize(file:read("*a"))
file:close()

Ну и полноценные СУБД со сложностью "за гранью богоподобия". Чисто для ознакомления, это не для нас, смертных:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ECS  Спасибо большое! Я буду использовать второй метод, раз уж 

Цитата

В майноське, как и в 99% софта, реализован плюс-минус он

И он какой-то более адекватный, или как) Скорее всего, более понятный, и наглядный. 

 

 

Ps. У меня сработало только с 

local config = serialization.unserialize(file:read("*a"))

А не 

local config = serialization.deserialize(file:read("*a"))

Но это мелочи :). Ещё раз спасибо!

Изменено пользователем Progger_coder

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...