Не обрабатывает блок 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 мб.
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
215
Баллы
43
Проверь для начала работает ли этот код с небольшой переменной, есть некоторые сомнения по этому поводу
 

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
893
Баллы
113
мне одному не понятно, как складываются "" и int?
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 957
Благодарностей
781
Баллы
113
мне одному не понятно, как складываются "" и int?
даже если и непонятно, но говорит же что работает на малом количестве) я например подумал, что раз второй параметр должен принимать строку, то вместо привидения инта в строку он произвёл конкатенацию пустой строки с интом, и оно типа автоматом строкой стало.
а мультлайн в таких случаях не надо вставлять?, типа вот так
Regex reg = new Regex(input, RegexOptions.Multiline);
 
Последнее редактирование:

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
Нужно сделать замену счетчиком слово 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

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