/// <summary>
        /// Разбор ответа сервера.
        /// </summary>
        /// <param name="answer"></param>
        /// <returns></returns>
        public static SearchPostingInfo[] Parse
        (
            IEnumerable <string> answer
        )
        {
            List <SearchPostingInfo> result = new List <SearchPostingInfo>();

            Regex regex = new Regex(@"^(\d+)\#(\w+)\#(\d+)\#(\d+)\#(\d*)$");

            foreach (string line in answer)
            {
                Match match = regex.Match(line);
                if (match.Success)
                {
                    SearchPostingInfo item = new SearchPostingInfo
                    {
                        Mfn        = int.Parse(match.Groups[1].Value),
                        Tag        = match.Groups[2].Value,
                        Occurrence = int.Parse(match.Groups[2].Value),
                        Count      = int.Parse(match.Groups[3].Value),
                    };
                    result.Add(item);
                }
            }

            return(result.ToArray());
        }
        /// <summary>
        /// Разбор ответа сервера с расформатированными записями.
        /// </summary>
        /// <param name="answer"></param>
        /// <returns></returns>
        public static SearchPostingInfo[] ParseFormatted
        (
            IEnumerable <string> answer
        )
        {
            List <SearchPostingInfo> result = new List <SearchPostingInfo>();

            Regex regex = new Regex(@"^(\d+)\#(\d+)\#(\w+)\#(\d+)\#(\d+)$");

            foreach (string line in answer)
            {
                string[] parts = line.Split('\x1E');
                if (parts.Length != 3)
                {
                    continue;
                }

                Match match = regex.Match(parts[0]);
                if (match.Success)
                {
                    SearchPostingInfo item = new SearchPostingInfo
                    {
                        Mfn        = int.Parse(match.Groups[2].Value),
                        Tag        = match.Groups[3].Value,
                        Occurrence = int.Parse(match.Groups[4].Value),
                        Count      = int.Parse(match.Groups[5].Value),
                        Text       = parts[1],
                        Formatted  = parts[2]
                    };
                    result.Add(item);
                }
            }

            return(result.ToArray());
        }