class File < IO def fgetb x=0 ret=0 each_byte do |i| ret=i break end return ret end def fgetw x=0 ret=0 each_byte do |i| ret|=(i<>3 return 0 if index>=offset self.pos=index*8 return fgetdw end def getLength(index) self.pos=0 offset=fgetdw>>3 return 0 if index>=offset self.pos=index*8+4 return fgetdw end def readName(index) self.pos=0 offset=fgetdw>>3 return "" if index>=offset self.pos=index*8 offset=fgetdw length=fgetdw return "" if length==0 self.pos=offset return read(length) end end