Domka
пон
Domka
я обычно просто enter нажимаю разделяя функции)
Domka
ну явно нужно на контекст ошибки смотреть
Domka
ну я ж говорил что я тупой по прежнему, ну хоть как то живу с этим)))
Snusmumriken
я обычно просто enter нажимаю разделяя функции)
Ну в общем-то да, ты такой берёшь и из одной строчки с четырьмя точками отказа, делаешь четыре строчки, с одной точкой отказа на каждую, и смотришь где ругнётся ))
Domka
Все логично
Domka
UtoECat
Все логично
А что если ты не можешь гарантировать наличие какого-либо из этих файлов, и строки существующих и правильно прочитанных надо всё равно вернуть?
Domka
Ну love.filesystem.exists в помощь
Domka
Дальше останавливаем условиями проверки существования файла останавливаем ряд действий где этот файл используется
UtoECat
Ну love.filesystem.exists в помощь
а что если файл... случайно удалится прямо после проверки? 😁 (это вполне вероятное событие)
Domka
Проверка ошибки?
Domka
Ну тип
Domka
Один хер у нас файл уехраниться
Domka
Сука нюучаязржка
Domka
Блять
Domka
Пока зарядка идет не могу быстро строчки набирать
Domka
Крч
Domka
мы файл же загружаем в оперативу
UtoECat
Я если чесно твой контекст не понял
здесь : local f = love.filesystem local data = f.load(f.read(file) .. f.read(file2) .. f.read(file3)) ты не можешь знать точно существуют-ли файлы file1, file2 и так далее, не можешь гарантировать, что они только для чтения, что они не удалятся... Например - ты пытаешься получить какую-нибудь информацию из криво написанного пользовательского дополнения, вполне реалистичная ситуация 😁
UtoECat
мы файл же загружаем в оперативу
пиши кодом крч, мы проревизируем)
Domka
Когда надо его выгрузить выгружаем, потом когда надо снова данные достать проверяем его существование
Domka
Или читать один раз?
Domka
Или читать и вносить изменения
UtoECat
Я тебя немног не понимаю, над надо все время читать данные?
это не имеет значения в контексте данной задачи
Domka
Прост ты так сказал: мы прочитали файл, а чо будет если он удалитьс, откуда?из памяти постоянной или из оперативы??
UtoECat
задача - написать функцию, которая читает файлы, пропускает файлы с ошибками чтения, конкатинирует их соджержимое в одну строку и возвращает результат
Domka
Ммм
Domka
Я даж не понимаю как такое может произойти
Domka
И из за этого не могу принять действий
Domka
Для меня это как будто огнетушитель загорелся
Domka
:^/
Domka
Ну ок love.filesystem.exists(file)--> выдал что такой файл есть --далее он удалился хз как Далее мы просто каждый файлик вызываем через load и там нам должно выдать либо значение либо nil
Domka
Ну или через love.filesystem.read()
Snusmumriken
Ну ок love.filesystem.exists(file)--> выдал что такой файл есть --далее он удалился хз как Далее мы просто каждый файлик вызываем через load и там нам должно выдать либо значение либо nil
Кароч, у функций с отказом обычно есть фишечка. Они возвращают не только nil при ошибке, но и текст ошибки. local result, err = love.filesystem.load(filename) И ты такой: if not result then print(err) end (если тебе есть куда print'ить)
Domka
Блин приелись с функциями дебага
Snusmumriken
А ещё есть функция local result = assert(result, err), которая, при ложном первом аргументе, ругнётся текстом второго аргумента. И она уже рейзит ошибку.
Domka
Спасиб
Domka
Ля я пойду дальше матрицы решать
UtoECat
local f = love.filesystem local f1data = assert(f.read(file)) local f2data = assert(f.read(file2)) local f3data = assert(f.read(file3)) local data = assert(f.load(f1data..f2data..f3data)) Ахаха всё в ассёртах
хехехе) ещё один вариант - написать функцию враппер, ака : local function safeload(filename) local str, err = love.filesystem.read(filename) if not str then print(err) return "" end return str end и такая функция даже в случае отказа чтения не будет приводить к ошибке конкатенации, а ошибку напишет в стандартный вывод
Domka
А то у меня мозг только одним делом может заниматс
Domka
Спасиб
Snusmumriken
Блин приелись с функциями дебага
Ну прост у тебя тут ошибка не на том что "тебя нафиг послали", а в том что json'у пришёл nil. А почему ему пришёл nil когда там как бы есть файл? Надо смотреть текст ошибки и пробовать иначе.
Snusmumriken
А вообще, в любой механике (классической) есть такое правило: чем больше движущихся частей, тем больше шансов что какая-то из них наебнётся. Но в проганье по крайней мере можно отслеживать моменты что что-то наебнулось, и узнавать причины "почему". Хотя в части механических механизмов тоже встраивают системы самодиагностики.
Domka
Я тебя понял
Igor
Ченжлог ловки 12.0 видели? Много полезного навалили там https://love2d.org/wiki/12.0
UtoECat
Ченжлог ловки 12.0 видели? Много полезного навалили там https://love2d.org/wiki/12.0
о! вышла что-ль? кинь это в LOVE2D чат тоже, мало-ли будет полезно кому
UtoECat
он не релизнут ещё
UtoECat
Igor
не вышла ещё
Igor
но лог создали
Igor
может кто из сообщества
Igor
если сами разработчики, то и релиз близко
Igor
я почему и не кинул никуда больше, ибо релиза как такового ещё нет)))
Igor
тут не так-то и много задач осталось
Igor
самая массивная из них (переход на яблочный метал) уже реализована, там тесты и фиксы по факту только остались
Snusmumriken
Ну тут народ ещё подливает задач довольно регулярно, а так никто не мешает сбилдить nightly-сборку
Nikolai
Вот люди конечно задачи себе ставят, переход на метал
Nikolai
Или эпплы обещают отрезать другие апи?
Igor
Или эпплы обещают отрезать другие апи?
Ага, они попенгл уже давно признали устаревшим
Igor
Aqendo
Алёша
Тк короче, сегодня поменял проц на пк, поставил fx 4100, столкнулся с такой проблемкой. Выключаю комп, спустя полминуты включаю и зависает на загрузочном лого винды, ресетаю, всё норм запускается, если выключить и дать некоторое время постоять то спустя это время тоже вроде норм включается
Алёша
Хз что за фигня
Алёша
+ когда проц поменял экран материнки при включении стал появляться на секунд 10 позднее чем обычно
Igor
Материнка какая?