'Read a block of data from the file.'

def Read(self, length):

    result = ''
    length = int(length)
    length = min(length, (self.size - self.offset))
    while (length > 0):
        data = self._ReadPartial(length)
        if (not data):
            break
        length -= len(data)
        result += data
    return result
