internal string GetBlobString()
{
uint strLen = ReadCompressedNum();
char[] str = new char[strLen];
uint readpos = (uint)this.BaseStream.Position;
for (int i=0; i < strLen; i++) {
str[i] = ReadChar();
uint newpos = (uint)this.BaseStream.Position;
if (newpos > readpos+1)
strLen -= newpos-(readpos+1);
readpos = newpos;
}
return new string(str,0,(int)strLen);
}