E
Edward Rawde
The class below seems to do exactly what I want it to do provided
Files.read_file is called first.
But it would be nice not to have to call Files.read_file externally at all
and have the other two methods automatically call it once, the first time
either of them is used.
So far I've not been able to do this without getting "uninitialized class
variable" errors. Is there a simple way to do it?
I've only been learning Ruby for two days so it's quite possible I've missed
the obvious.
Ed
class Files
def Files.read_file
@@file = File.open("test.bin","rb")
@@code = []
@@address = 0
while @@address < 65536 and (@@byte = @@file.getc) != nil
@@code.push(@@byte)
@@address += 1
end
@@file.close
end
def Files.readCodeByte index
return @@code[index-@@offset]
end
def Files.setOffset anoffset
@@offset = anoffset
end
end
Files.read_file is called first.
But it would be nice not to have to call Files.read_file externally at all
and have the other two methods automatically call it once, the first time
either of them is used.
So far I've not been able to do this without getting "uninitialized class
variable" errors. Is there a simple way to do it?
I've only been learning Ruby for two days so it's quite possible I've missed
the obvious.
Ed
class Files
def Files.read_file
@@file = File.open("test.bin","rb")
@@code = []
@@address = 0
while @@address < 65536 and (@@byte = @@file.getc) != nil
@@code.push(@@byte)
@@address += 1
end
@@file.close
end
def Files.readCodeByte index
return @@code[index-@@offset]
end
def Files.setOffset anoffset
@@offset = anoffset
end
end