class Object
Public Instance Methods
checkMemoryUsage(lineNumber)
click to toggle source
# File lib/extremeunzip.zzaqsu.rb, line 10 def checkMemoryUsage(lineNumber) mem = GetProcessMem.new puts("#{lineNumber} , Memory: #{mem.mb}"); # Debug end
extractVfsDataWithVersion(wholeCbor, fileVersion)
click to toggle source
# File lib/extremeunzip.zzaqsu.rb, line 68 def extractVfsDataWithVersion(wholeCbor, fileVersion) # 根据版本号,提取VFS数据内容 victoriaFreshData = '' # 解压后的数据块整体 if (fileVersion == 14) # 14版本 compressedVfsData = wholeCbor['vfsData'] # 获取压缩后的数据内容 victoriaFreshData = LZMA.decompress(compressedVfsData) # 解压缩数据内容 elsif (fileVersion >= 30) # 30以上版本 compressedVfsDataList = wholeCbor['vfsDataList'] # 获取压缩后的数据块列表 puts("data block amont: #{compressedVfsDataList.length}") # Debug dataBlockCounter = 0 # Data block counter compressedVfsDataList.each do |currentCompressed| # 一块块地解压 puts("data block counter: #{dataBlockCounter}") # Debug checkMemoryUsage(34) currentRawData = LZMA.decompress(currentCompressed) # 解压这一块 # victoriaFreshData=victoriaFreshData+currentRawData #追加 victoriaFreshData << currentRawData # 追加 puts("byte size: #{victoriaFreshData.bytesize}") # debug. dataBlockCounter += 1 # count end # compressedVfsDataList.each do |currentCompressed| end # if (fileVersion==14) #14版本 victoriaFreshData # 返回解压后的数据块整体 end
extractVfsDataWithVersionExternalFile(wholeCbor, fileVersion)
click to toggle source
根据版本号,提取VFS数据内容
# File lib/extremeunzip.zzaqsu.rb, line 17 def extractVfsDataWithVersionExternalFile(wholeCbor, fileVersion) victoriaFreshData = '' # 解压后的数据块整体 dataFileName = 'victoriafreshdata.w' # 数据文件名 dataFile = {} # 数据文件对象 if (fileVersion == 14) # 14版本 compressedVfsData = wholeCbor['vfsData'] # 获取压缩后的数据内容 victoriaFreshData = LZMA.decompress(compressedVfsData) # 解压缩数据内容 dataFile = File.open(dataFileName, 'wb') # 打开文件 dataFile.syswrite(victoriaFreshData) # 写入内容 dataFile.close # 关闭文件 elsif (fileVersion >= 30) # 30以上版本 compressedVfsDataList = wholeCbor['vfsDataList'] # 获取压缩后的数据块列表 puts("data block amont: #{compressedVfsDataList.length}") # Debug dataBlockCounter = 0 # Data block counter dataFile = File.open(dataFileName, 'wb') # 打开文件 compressedVfsDataList.each do |currentCompressed| # 一块块地解压 puts("data block counter: #{dataBlockCounter}") # Debug checkMemoryUsage(34) begin # 解压 currentRawData = LZMA.decompress(currentCompressed) # 解压这一块 dataFile.syswrite(currentRawData) # 写入内容 rescue RuntimeError => e # 解压失败 puts "Warning: the exz file may be incomplete." # 报告错误。文件可能不完整。 end # begin # 解压 # victoriaFreshData=victoriaFreshData+currentRawData #追加 # victoriaFreshData << currentRawData #追加 #puts("byte size: #{victoriaFreshData.bytesize}") # debug. dataBlockCounter += 1 # count end # compressedVfsDataList.each do |currentCompressed| dataFile.close # 关闭文件 end # if (fileVersion==14) #14版本 dataFileName # 返回解压后的数据块整体 end