У меня большой текстовый файл может составлять до + 500 МБ), что мне нужно заменить все события даты, которые встречаются в определенной строке. Я использую регулярное выражение для соответствия дате, и это отлично работает. Мне нужно зафиксировать номер строки, совпадение и всю строку, в которой происходит совпадение. У меня есть эта часть, работая, это часть замены, с которой я борюсь. В идеале я хотел бы сделать матч, захватить дополнительную информацию и сделать замену в одной поездке через файл. Как я могу сделать это эффективно? Это то, что я использую для выполнения регулярного выражения.C# Regex Match/Replace Large Text File
while ((line = InputFile.ReadLine()) != null)
{
// Increment for each line read
x++;
// Try to match each line against the Regex.
Match m = reg.Match(line);
if (m.Success)
{
DateTime result;
if (!(DateTime.TryParse(m.Groups[0].Value, out result)))
{
// add it to the DT
MatchTable.Rows.Add(x, m.Groups[0].Value, line);
}
else if (DateTime.Parse(m.Groups[0].Value).Year <= 1753) // 1753 is the earliest date that can be stored in SQL datetime
{
// add it to the DT
MatchTable.Rows.Add(x, m.Groups[0].Value, line);
}
}
}
Может ли это быть выполнено с асинхронным чтением/записью? (Не то, чтобы я знал, как это сделать, просто интересно) – mack