Анализ Designer.cs файла проекта - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Мне нужно распарсить Designer файл, собственно, большинство уже сделано, осталось только пройтись по той его части, где поочередно описываются свойства элементов управления. Синтаксис таков:
            
// 
// panel24
// 
this.panel24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
this.panel24.Dock = System.Windows.Forms.DockStyle.Left;
this.panel24.Location = new System.Drawing.Point(0, 2);
this.panel24.Name = "panel24";
this.panel24.Size = new System.Drawing.Size(2, 45);
this.panel24.TabIndex = 11;
// 
// panel25
// 
и тд...
Пользователь выбирает необходимый элемент и в RichTextBox выводятся его свойства. Стало быть мне нужно, во-первых: Каким-то образом записать условие, что если найдена строка "//" + Name и она находится между строками, которые содержат только "//", то делать то-то то-то:
// 
// panel24
//
Во-вторых, как-то вывести весь текст между "//":
 // 
this.panel24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
this.panel24.Dock = System.Windows.Forms.DockStyle.Left;
this.panel24.Location = new System.Drawing.Point(0, 2);
this.panel24.Name = "panel24";
this.panel24.Size = new System.Drawing.Size(2, 45);
this.panel24.TabIndex = 11;
//
Возможно, Regex поможет? Результат, которого я хочу добиться наглядно:

Решение задачи: «Анализ Designer.cs файла проекта»

textual
Листинг программы
int number = 0;
                    int enumer = 0;
                    for (var i = 0; i < massive.Count(); i++)
                    {
                        if (massive[i].Contains("// " + Name))
                        {
                            if (massive[i - 1].Contains("//") & massive[i + 1].Contains("//"))
                            {
                                number = i + 1;
                                RichTextBox rb = new RichTextBox();
                                for (var j = number; j < (massive.Count() - number); j++)
                                {
                                    if (!massive[j].Contains("//"))
                                    {
                                        rb.AppendText(massive[j]);
                                        PropertiesList.Add(massive[j]);
                                    }
                                    else
                                    {
                                        //если дошли до строки с двойным слешем
                                        //то надо как-то из цикла выйти
                                    }
                                }
                                
                              //  foreach (Match match in Regex.Matches(input, @"//([\s\S]*?)//"))
                                 //   PropertiesList.Add("index " + match.Groups[1].Index);
                            }
                        }
                    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы