Esempio n. 1
0
        /// <summary>
        /// Parses a Tosec Game Name into meaningful properties
        /// </summary>
        /// <param name="line">Game Name or Description</param>
        /// <example>
        /// Parse("Test Title, The v1.4 (demo-kiosk) (2017)(Test Publisher)(CD32)(NTSC)(US)(en)(SW)(beta)(Disc 1 of 6)(Character Disk)[cr TRSI][h PDM][b]");
        /// </example>
        public override void Parse(string line)
        {
            var regex   = new Regex(ProgramRegExString);
            var matches = regex.Matches(line);

            FullName          = line;
            Name              = matches[0].Groups[1].Value;
            Version           = matches[0].Groups[2].Value;
            Demo              = matches[0].Groups[4].Value;
            Date              = matches[0].Groups[5].Value;
            Publisher         = matches[0].Groups[6].Value;
            GameSystem        = matches[0].Groups[8].Value;
            Video             = matches[0].Groups[10].Value;
            Country           = matches[0].Groups[12].Value;
            Language          = matches[0].Groups[14].Value;
            Copyright         = matches[0].Groups[16].Value;
            DevelopmentStatus = matches[0].Groups[18].Value;
            MediaType         = matches[0].Groups[19].Value;
            if (MediaType.StartsWith("(") && MediaType.EndsWith(")") && MediaType.Length > 2)
            {
                MediaType = MediaType.Substring(1, MediaType.Length - 2);
            }
            MediaLabel = matches[0].Groups[23].Value;
            DumpFlags  = matches[0].Groups[24].Value;
            Additional = matches[0].Groups[27].Value;
        }