Stinger 0 Опубликовано: 7 октября, 2017 Здравствуйте друзья, проблема в следующем lua обращается к файлу и нужно что бы в следующий раз он получил значение из файла - добавил к нему новое и перезаписал, но lua просто дописывает значение в файл, просьба помочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 7 октября, 2017 А, понятно. Ну в таком случае тебе просто надо перезаписывать файл. Открывай его с режимом r, обрабатывай данные, закрывай и переоткрывай в режиме w. Файл перезапишется начистую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 7 октября, 2017 В обычном Луа можно было бы использовать режим a+ - "чтение плюс дозапись". Например так: -- открываем файлик в режиме чтения-добавления -- если файлика не существовало в момент открытия - он будет создан -- если он существовал - будет открыт на дозапись local file = io.open("hotto-dogu.txt", "a+") file:write("i like hotto dogu\neat eat eat hotto dogu\n") -- закрываем файлик -- (это правило хорошего тона, как минимум) file:close() Запускаем два раза, и в файле hotto-dogu.txt появляется четыре строки: i like hotto dogu eat eat eat hotto dogu i like hotto dogu eat eat eat hotto dogu Однако в OpenComputers всё чуть сложнее, потому что режимы с плюсиками не работают. OpenComputers поддерживает только режимы r, w и a. То есть нам придётся сначала открыть файл на чтение, прочесть что надо, закрыть, а потом уже открывать на дозапись. Например так: local comboCounter = 0 -- открываем на чтение и вершим свои тёмные дела local file = io.open("hotto-dogu.txt", "r") if file ~= null then for line in file:lines() do comboCounter = comboCounter + 1 end file:close() end -- а теперь открываем на дозапись, и дозаписываем какую-нибуь хренотень file = io.open("hotto-dogu.txt", "a") if comboCounter == 0 then file:write("hotto dogu\n") else file:write("hotto dogu [x" .. comboCounter + 1 .. "]\n") end file:close() Запустим программу раз пять, и вуаля! hotto dogu hotto dogu [x2] hotto dogu [x3] hotto dogu [x4] hotto dogu [x5] 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Stinger Автор вопроса 0 Опубликовано: 7 октября, 2017 Спасибо за ответ, не совсем то , что надо, нужно следующее : Изначально в файле значение 5! -- только 5 ничего более Программа открывает файл - получает его значение в данном случае 5, Потом плюсует к этому значению допустим 4 и перезаписывает файл. И при следующем открытии должно выдать уже не 5 а 9! Не построчно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Здравствуйте друзья, проблема в следующем lua обращается к файлу и нужно что бы в следующий раз он получил значение из файла - добавил к нему новое и перезаписал, но lua просто дописывает значение в файл, просьба помочь.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах