Здравствуйте. Пишу программу, которая заменяет в файлах текст, с одного на другой. Вот, есть код:
| Код | if (!Register) { fileText = fileText.Replace(OldText, NewText); } else { int position = 0; List<int> positions = new List<int>(); int positionLag = 0; while (position >= 0) { position = fileText.ToLower().IndexOf(OldText.ToLower(), position); if (position >= 0) { positions.Add(position); position++; } } foreach (int pos in positions) { fileText = fileText.Remove(pos + positionLag, OldText.Length); fileText = fileText.Insert(pos + positionLag, NewText); positionLag = positionLag + NewText.Length - OldText.Length; } }
|
где, если Register == true, то выполняется замена текста без зависимости от регистра символов. Но, этот алгоритм выполняется, мягко говоря, довольно долго (при больших объемах текста по сравнению с String.Replace() в раз 15 дольше). Можете посоветовать, как это дело можно оптимизировать? Заранее благодарю! |