/// <summary> /// решение гапоифики /// </summary> /// <param name="T">таб</param> /// <returns>true</returns> public bool Process(OneTab T) { OT = T; task = OT.tbTextTask.Text; string resout = ""; string[] ar1 = System.Text.RegularExpressions.Regex.Split(task, "\r\n"); foreach (string s1 in ar1) { if (s1 != "") { // получим возможные наименвоания фильмов List <string> names = Films.GetNameList(s1); // и маску в формате "га по и фи ка" string mask = Films.PrepareSearchString(s1); mask = mask.ToLower().Replace(" ", " ").Replace(" ", " ").Trim(); foreach (string name in names) { // уберем цифры в скобках string n = RemoveYearBrackets(name); n = RemoveYearBrackets(n); // уберем спецсимволы n = n.Replace("`", " ").Replace("~", " ").Replace("!", " ").Replace("@", " ").Replace("#", " ").Replace("№", " ").Replace("\"", " "); n = n.Replace(";", " ").Replace("$", " ").Replace("%", " ").Replace("^", " ").Replace(":", " ").Replace("&", " ").Replace("?", " "); n = n.Replace("*", " ").Replace("(", " ").Replace(")", " ").Replace("-", " ").Replace("_", " ").Replace("=", " ").Replace("+", " "); n = n.Replace("{", " ").Replace("}", " ").Replace("[", " ").Replace("]", " ").Replace("/", " ").Replace("|", " ").Replace("\\", " "); n = n.Replace(";", " ").Replace(":", " ").Replace("'", " ").Replace(",", " ").Replace(".", " ").Replace("<", " ").Replace(">", " "); n = n.Replace("«", " ").Replace("»", " "); n = n.Replace("…", " ").Replace(" ", " ").Replace(" ", " ").Replace(" ", " ").Replace(" ", " ").Replace(" ", " ").Trim(); // составим из очередного найденного названия маску в стиле "га по и фи ка" string[] ar2 = n.Split(' '); string nn = ""; foreach (string s in ar2) { if (s == "") { continue; } if (s.Length == 1) { nn = nn + s + " "; } else { nn = nn + s.Substring(0, 2) + " "; } } nn = nn.ToLower().Replace(" ", " ").Replace(" ", " ").Trim(); // проверяем, если соответствует - передаем во вбиватор if (nn == mask) { Answer.Add(T, 3, n, -1); resout = resout + n + "\r\n"; } } } resout = resout + "\r\n"; } T.tbSectors.Invoke(new Action(() => { T.btSolve.Enabled = true; })); T.tbTextHints.Invoke(new Action(() => { T.tbTextHints.Text = resout; })); T.tcTabText.Invoke(new Action(() => { T.tcTabText.SelectTab(1); })); return(true); }