private Int32 ReadNumber(byte[] buffer, int startPosition, out int endPosition)
{
endPosition = startPosition;
int num = 0;
while (endPosition < buffer.Length)
{
if (buffer[endPosition] < '0' || buffer[endPosition] > '9')
break;
num = num * 10 + (int)(buffer[endPosition] - '0');
++endPosition;
}
return num;
}