Beispiel #1
0
        public void Read(MemoryStream s, ushort version)
        {
            var r = new CtrlCmdReader(s, version);

            r.Begin();
            r.Read(ref andKey);
            r.Read(ref notKey);
            r.Read(ref regExpFlag);
            r.Read(ref titleOnlyFlag);
            r.Read(ref contentList);
            r.Read(ref dateList);
            r.Read(ref serviceList);
            r.Read(ref videoList);
            r.Read(ref audioList);
            r.Read(ref aimaiFlag);
            r.Read(ref notContetFlag);
            r.Read(ref notDateFlag);
            r.Read(ref freeCAFlag);
            if (version >= 3)
            {
                r.Read(ref chkRecEnd);
                r.Read(ref chkRecDay);
            }
            if (version >= 5 && r.RemainSize() >= 5)
            {
                byte recNoService = 0;
                r.Read(ref recNoService);
                if (recNoService != 0)
                {
                    chkRecDay = (ushort)(chkRecDay % 10000 + 40000);
                }
                ushort durMin = 0;
                ushort durMax = 0;
                r.Read(ref durMin);
                r.Read(ref durMax);
                if (durMin > 0 || durMax > 0)
                {
                    andKey = andKey.Insert(
                        System.Text.RegularExpressions.Regex.Match(andKey, @"^(?:\^!\{999\})?(?:C!\{999\})?").Length,
                        "D!{" + ((10000 + Math.Min((int)durMin, 9999)) * 10000 + Math.Min((int)durMax, 9999)) + "}");
                }
            }
            r.End();
        }