Анализ Designer.cs файла проекта - C#
Формулировка задачи:
Всем доброго времени суток!
Мне нужно распарсить Designer файл, собственно, большинство уже сделано, осталось только пройтись по той его части, где поочередно описываются свойства элементов управления.
Синтаксис таков:
Пользователь выбирает необходимый элемент и в RichTextBox выводятся его свойства. Стало быть мне нужно, во-первых:
Каким-то образом записать условие, что если найдена строка "//" + Name и она находится между строками, которые содержат только "//", то делать то-то то-то:
Во-вторых, как-то вывести весь текст между "//":
Возможно, Regex поможет?
Результат, которого я хочу добиться наглядно:
Листинг программы
- //
- // 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
- //
- и тд...
Листинг программы
- //
- // 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;
- //
Решение задачи: «Анализ 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д