Ejemplo n.º 1
0
        void Parse()
        {
            if (Tegs.Count != 0)
            {
                if (Tegs[0].Position != 0)
                {
                    Text text = new Text();
                    text.Content = SomeNeedOverWrite.CopyStrToStr(Content, 0, Tegs[0].Position);
                    text.Content = FormattingText.DeleteSpace(text.Content);
                    if (text.Content.Length != 0)
                    {
                        ColumnContent.Add(text);
                    }
                }
                for (int i = 0; i < Tegs.Count; i++)
                {
                    switch (Tegs[i].TegType)
                    {
                    case "/с/":
                    {
                        Section section = new Section();
                        int     j       = EndTeg(i, "с/");
                        section.Content = SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 3, Tegs[j].Position);
                        section.Tegs    = SomeNeedOverWrite.CopyListToList(Tegs, i + 1, j);
                        ColumnContent.Add(section);
                        i = j;
                        break;
                    }

                    case "/к/":
                    {
                        Columns column = new Columns();
                        int     j      = EndTeg(i, "к/");
                        column.Content = SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 3, Tegs[j].Position);
                        column.Tegs    = SomeNeedOverWrite.CopyListToList(Tegs, i + 1, j);
                        ColumnContent.Add(column);
                        i = j;
                        break;
                    }

                    case "/з/":
                    {
                        Title title = new Title();
                        int   j     = EndTeg(i, "з/");
                        title.TitleTx = SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 3, Tegs[j].Position);
                        ColumnContent.Add(title);
                        i = j;
                        break;
                    }

                    case "/л/":
                    {
                        MarkerList mrList = new MarkerList();
                        int        j      = EndTeg(i, "л/");
                        mrList.Content = SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 3, Tegs[j].Position);
                        mrList.Tegs    = SomeNeedOverWrite.CopyListToList(Tegs, i + 1, j);
                        ColumnContent.Add(mrList);
                        i = j;
                        break;
                    }
                    }
                    if (i < Tegs.Count - 2)
                    {
                        if (i < Tegs.Count - 1)
                        {
                            if ((Tegs[i + 1].Position - Tegs[i].Position + 4 > 3) && FormattingText.DeleteSpace(SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 4, Tegs[i + 1].Position)) != "")
                            {
                                Text text = new Text();
                                text.Content = SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 4, Tegs[i + 1].Position);
                                text.Content = FormattingText.DeleteSpace(text.Content);
                                ColumnContent.Add(text);
                            }
                        }
                    }
                    if ((i == Tegs.Count - 1) && (Tegs[i].Position + 3 < Content.Length - 1))
                    {
                        Text text = new Text();
                        text.Content = SomeNeedOverWrite.CopyStrToStr(Content, Tegs[i].Position + 4, Content.Length);
                        text.Content = FormattingText.DeleteSpace(text.Content);
                        if (text.Content.Length != 0)
                        {
                            ColumnContent.Add(text);
                        }
                    }
                }
            }
            else
            {
                Text text = new Text();
                text.Content = Content;
                ColumnContent.Add(text);
            }
        }