:) lose the offset thing look at msdn FileStream Read method :
[C#]
public override int Read(
[In,Out] byte[] array,
int offset,
int count
);
Parameters
*array
When this method returns, contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source.
*offset
The byte offset in array at which to begin reading.
*count
The maximum number of bytes to read.
Return Value
The total number of bytes read into the buffer. This might be less than the number of bytes requested if that number of bytes are not currently available, or zero if the end of the stream is reached.
I hope you understand... By the way... visit http://nehe.gamedev.net[^]