Я пытаюсь сохранить сжатые строки в файл и загрузить их позже для использования в игре. Я продолжал получать ошибки «in» finish: error error при загрузке резервных копий данных для использования. Я придумал это:Ошибка взлома Zlib
require "zlib"
def deflate(string)
zipper = Zlib::Deflate.new
data = zipper.deflate(string, Zlib::FINISH)
end
def inflate(string)
zstream = Zlib::Inflate.new
buf = zstream.inflate(string)
zstream.finish
zstream.close
buf
end
setting = ["nothing","nada","nope"]
taggedskills = ["nothing","nada","nope","nuhuh"]
File.open('testzip.txt','wb') do |w|
w.write(deflate("hello world")+"\n")
w.write(deflate("goodbye world")+"\n")
w.write(deflate("etc")+"\n")
w.write(deflate("etc")+"\n")
w.write(deflate("Setting: name "+setting[0]+" set"+(setting[1].class == String ? "str" : "num")+" "+setting[1].to_s)+"\n")
w.write(deflate("Taggedskill: "+taggedskills[0]+" "+taggedskills[1]+" "+taggedskills[2]+" "+taggedskills[3])+"\n")
w.write(deflate("etc")+"\n")
end
File.open('testzip.txt','rb') do |file|
file.each do |line|
p inflate(line)
end
end
Это ошибка, наносимая ошибкой в точке «Taggedskill:». Я не знаю, что это такое, но попытка изменить его на «Skilltag:», «Skillt:» и т. Д. Продолжает выдавать ошибку в буфере, в то время как такие вещи, как «Настройка:» или «Вещь:» работают нормально, в то время как изменение настройки линии «Taggedskill:» продолжает работать нормально. Что здесь происходит?
Итак, что-то вроде: writeFile = "hello world" + "\ n", а затем deflate writeFile, когда вы его пишете? Потому что это все еще вызывает ту же ошибку. – user1796160
Это и раздувает весь файл сразу, а не по строкам. – Tobi
Да, вот что я имел в виду. Вводя все это в одну переменную и раздувая это. Но это все еще вызывает ошибку. :/ – user1796160