コード例 #1
0
        private static FileStream SeekToDataStartOffset(FileStream file, out string version)
        {
            int num = -1;

            version = string.Empty;
            byte[] array = new byte[1024];
            bool   flag  = true;
            int    num2;
            int    i;

            for (;;)
            {
                num2 = file.Read(array, 0, array.Length);
                if (num2 == 0)
                {
                    break;
                }
                for (i = 0; i < num2; i++)
                {
                    byte b = array[i];
                    if (flag)
                    {
                        if (b != 35)
                        {
                            goto Block_3;
                        }
                        if (i + "Version:".Length < num2)
                        {
                            string text = CsvFieldCache.DecodeString(array, i + 1, "Version:".Length);
                            if (text.Equals("Version:"))
                            {
                                num = i + "Version:".Length + 1;
                            }
                        }
                        flag = false;
                    }
                    else if (b == 10)
                    {
                        flag = true;
                        if (num != -1)
                        {
                            version = CsvFieldCache.DecodeString(array, num, i - num).Trim();
                            num     = -1;
                        }
                    }
                }
            }
            file.Close();
            return(null);

Block_3:
            file.Seek((long)(i - num2), SeekOrigin.Current);
            return(file);
        }