Массовое удаление слов в строках из списка решено стандартными методами в zennoposter 7 ?

zava75

Client
Регистрация
01.12.2019
Сообщения
157
Благодарностей
4
Баллы
18
Массовое удаление слов в строках из списка решено стандартными методами в zennoposter 7 ?
Есть список очень большой размер. и список минус слов. как обработать быстро и просто . Раньше весь список переводил в переменную чистил строки путем поиска замены на свое статичное значение. Есть возможность в новом zennoposter 7 заменить слова в строках списка не переводя список в переменную ? или может както #c ?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 481
Благодарностей
8 692
Баллы
113
Есть возможность в новом zennoposter 7 заменить слова в строках списка не переводя список в переменную ?
"Операции над списком - Удалить строки - Удовлетворяющие регулярному выражению".
Регулярку с минус словами можно сделать с помощью объединения списка минус-слов с разделителем "|" и пропуском через кубик "Обработка текста - Escape строки"

92309
 
  • Спасибо
Реакции: elena210

zava75

Client
Регистрация
01.12.2019
Сообщения
157
Благодарностей
4
Баллы
18
"Операции над списком - Удалить строки - Удовлетворяющие регулярному выражению".
Регулярку с минус словами можно сделать с помощью объединения списка минус-слов с разделителем "|" и пропуском через кубик "Обработка текста - Escape строки"

Посмотреть вложение 92309
спасибо но не то что нужно.

есть список 1 ОЧЕНЬ МНОГО строк
пример
строка 1 -- текст текст текст минус слово 2 текст текст текст ..
строка 2 -- текст текст текст минус слово 1 текст текст текст ....
строка 3 -- текст текст текст минус слово 3 текст текст текст...
.....

есть список 2 минусом
строка 1 -- минус слово 1
строка 2 -- минус слово слово 2
строка 2 -- минус слово слово слово 3
строка 4 -- минус слово 4
....

нужно пройтись по списку 1 путем замены минус слов в строках на свое значение например
zenno)))
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 409
Баллы
113
спасибо но не то что нужно.

есть список 1 ОЧЕНЬ МНОГО строк
пример
строка 1 -- текст текст текст минус слово 2 текст текст текст ..
строка 2 -- текст текст текст минус слово 1 текст текст текст ....
строка 3 -- текст текст текст минус слово 3 текст текст текст...
.....

есть список 2 минусом
строка 1 -- минус слово 1
строка 2 -- минус слово слово 2
строка 2 -- минус слово слово слово 3
строка 4 -- минус слово 4
....

нужно пройтись по списку 1 путем замены минус слов в строках на свое значение например
zenno)))
C#:
string text = "Своё значение"; // Значение на которое будет производиться замена
IZennoList list1 = project.Lists["list1"];
IZennoList list2 = project.Lists["list2"];
// Демо данные списка в котором будем делать замену
list1.Add("текст текст текст 111 текст текст текст ..");
list1.Add("текст текст текст 222 текст текст текст ....");
list1.Add("текст текст текст 333 текст текст текст...");
list1.Add("текст текст текст 444 текст текст текст...");

// Демо данные списка в котором находится текст который собрались заменять
list2.Add("111");
list2.Add("222");
list2.Add("333");
list2.Add("444");

for(int i=0;i<list1.Count;i++){
    for(int j=0;j<list2.Count;j++){
        list1[i] = list1[i].Replace(list2[j], text).ToString();
    }
}

// Убрать строку, если работа с реальными данными
return string.Join(Environment.NewLine, list1);
 
  • Спасибо
Реакции: zava75

zava75

Client
Регистрация
01.12.2019
Сообщения
157
Благодарностей
4
Баллы
18
Спасибо всем за советы
решил так
C#:
string clearText = project.Variables["clearText"].Value;
string strReplace = project.Variables["strReplace"].Value;
IZennoList list1 = project.Lists["RESULT"];

 project.SendInfoToLog( clearText  , true);

for(int i=0;i<list1.Count;i++){
 list1[i] = list1[i].Replace( clearText , strReplace ).ToString();
    
}
но вначале нужно отсортировать список от куда берутся строки по замене , сортировка по длине символов дабы исключить вхождения и точной замены
C#:
// СОРТИРОВКА По убыванию количества символов в строках

IZennoList list = project.Lists["LIST"];
IEnumerable<string> result = list.OrderByDescending(s => s.Length).ToList();
list.Clear();
list.AddRange(result);
 

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