/// <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; }