Не обрабатывает блок c# переменную с 600+ т. строк

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Реакции
3
Баллы
18
Нужно сделать замену счетчиком слово IN2TTP4LUSO5NI


Код:
Развернуть Свернуть Копировать
string str = project.Variables["meta"].Value;
string input = "IN2TTP4LUSO5NI";
string replacement = "";
Regex reg = new Regex(input);
int count = reg.Matches(str).Count;
for (int i = 0; i < count; i++)
    str = reg.Replace(str, replacement + i, 1, i);
return str;
т.е. везде где оно есть должно подставить +1 отталкиваясь от предыдущего, но процес виснет и не обрабатывает все.. как решить проблему? Обрабатывает данные переменной

i7, hhd, 3,5 ghz, 8gb, 4 core
данных закинутых в переменную 36 мб.
 
Проверь для начала работает ли этот код с небольшой переменной, есть некоторые сомнения по этому поводу
 
мне одному не понятно, как складываются "" и int?
 
мне одному не понятно, как складываются "" и int?
даже если и непонятно, но говорит же что работает на малом количестве) я например подумал, что раз второй параметр должен принимать строку, то вместо привидения инта в строку он произвёл конкатенацию пустой строки с интом, и оно типа автоматом строкой стало.
а мультлайн в таких случаях не надо вставлять?, типа вот так
Regex reg = new Regex(input, RegexOptions.Multiline);
 
Последнее редактирование:
Нужно сделать замену счетчиком слово IN2TTP4LUSO5NI


Код:
Развернуть Свернуть Копировать
string str = project.Variables["meta"].Value;
string input = "IN2TTP4LUSO5NI";
string replacement = "";
Regex reg = new Regex(input);
int count = reg.Matches(str).Count;
for (int i = 0; i < count; i++)
    str = reg.Replace(str, replacement + i, 1, i);
return str;
т.е. везде где оно есть должно подставить +1 отталкиваясь от предыдущего, но процес виснет и не обрабатывает все.. как решить проблему? Обрабатывает данные переменной

i7, hhd, 3,5 ghz, 8gb, 4 core
данных закинутых в переменную 36 мб.

C#:
Развернуть Свернуть Копировать
string str = project.Variables["meta"].Value;
string input = "IN2TTP4LUSO5NI";
string replacement = "";
Regex reg = new Regex(input);
int i = -1;
var str = reg.Replace(str, m =>
{
    i++;
    return i.ToString();
});
return str;
 
  • Спасибо
Реакции: keltuzhaknut

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)