public static int ParseByteArray(byte[] data, int pos, ref byte[] array)
{
int prefix = 0;
while (pos < data.Length)
{
if (data[pos] >= '0' && data[pos] <= '9')
{
prefix = prefix * 10 + (data[pos] - '0');
pos += 1;
}
else if (data[pos] == ':')
{
break;
}
else
return -1;
}
if (pos < data.Length)
{
if (data[pos] == ':')
pos += 1;
else
return -1;
}
if (pos + prefix >= data.Length)
return -1;
array = new byte[prefix];
Buffer.BlockCopy(data, pos, array, 0, prefix);
pos += prefix;
return pos;
}