The first thing that occurs to me is that the punctuation isn't ASCII-numbered. Try some sets of patterns like "!000", "0!00", "00!0", and "000!" and see if the offset of the offset is the same for each of the '!'s. If so, then the value of '!' just isn't the ASCII-normal value of 0x21.

Edit: Looking at your sample data again, it looks like that's not the case.


Edited by wfaulk (24/10/2011 15:13)
_________________________
Bitt Faulk