Написать метод на c#

Цена договорная
01 декабря 2022, 11:41 • 3 отклика • 27 просмотров
Требуется быстрая работа с файлами лога, вес которых может быть более 5Гб.

Сейчас есть готовый метод, который при выборе файла, ищет строку с нужным совпадением и записывает результат в текстовое поле. Его нужно дописать. Сам метод ниже в тексте.

Что нужно:
- Нужно создать цикл поиска по логу:
--найти первое вхождение, в строке помимо даты будет только текст по маске "\sDeadlock\sId\s\d {3}\sdetected";
--после этого вхождения подгрузить все следующие строки до строки, где заканчивается блок;
--блок заканчивается либо строкой "End of deadlock information" либо "end of stack trace";
- вывести в текстовое поле( можно с разделителями), и далее ищем такой же блок и тд.


private void CheckLog(string y)
{
StreamReader str = new StreamReader(y);
while (Istr. EndofStream)
{
var line = str. ReadLineO;
if (String. IsNullOrEmpty(line)) continue;
if (line. IndexOfft, StringComparison. CurrentCultureIgnoreCase) >= 0)
{
Regex checkip = new Regex(@"\sDeadlock\sId\s\d {3}\sdetected");
MatchCollection matchesAT = checkip. Matches(line);
if (matchesAT.Count > 0) {//вывод в текстовое поле}
}
}
str.Close();
}

p.s реализация желательно базовыми моментами, по индексу строки или еще как то.