Анализ 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);
}
}
}