Поиск строки в списке по ключевику из другого списка.

olegbez007

Client
Регистрация
02.11.2022
Сообщения
178
Благодарностей
34
Баллы
28
Прошу помощи в C# коде для поиска строки по переменной.
Строка из первого файла уходит в переменную key1, далее надо ее найти в файле2, положить в переменную key2.
Как это оформить кодом? Или для этого есть решение кубиками?
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 357
Благодарностей
9 093
Баллы
113
Прошу помощи в C# коде для поиска строки по переменной.
Строка из первого файла уходит в переменную key1, далее надо ее найти в файле2, положить в переменную key2.
Как это оформить кодом? Или для этого есть решение кубиками?
Можно и обычными кубиками.

Можно выделять подсписок по ключевику - по точному вхождению или регулярке.
Можно вложенными циклами.
 

olegbez007

Client
Регистрация
02.11.2022
Сообщения
178
Благодарностей
34
Баллы
28
Не нашел такого в кубиках. Можно более развернуто объяснить?
 

Denchen

Client
Регистрация
23.06.2020
Сообщения
22
Благодарностей
3
Баллы
3
Добрый день!
Мне тоже интересно, через кубики точно можно сделать, проблема в регулярке, вопросы:
1. Помогите составить регулярку, чтобы в тексте можно было искать слово - test;
2. Будет ли зеннопостер обрабатывать текст если слово - test, заменить на {-variable.key-}?
 

chimera

Client
Регистрация
02.03.2020
Сообщения
5
Благодарностей
23
Баллы
3
Не нашел такого в кубиках. Можно более развернуто объяснить?
Кубиками:
113439


с# (взять строку кубиком, положить в переменную key1, потом запускать код)
C#:
string key1 = project.Variables["key1"].Value;
var listToCheck = project.Lists["file2"];
for (int i = 0; i < listToCheck.Count; i++)
    {
        if (listToCheck[i].Contains(key1))
        {
            project.Variables["key2"].Value = listToCheck[i];
            return "Match is found";
        }
    }
 
  • Спасибо
Реакции: olegbez007 и Denchen

Denchen

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

chimera

Client
Регистрация
02.03.2020
Сообщения
5
Благодарностей
23
Баллы
3
Вот нашел:
Поиск слова начинающегося с определённого текста
Код:
(?i)\bgo.*?(?=\W|\ |\r|\n|$)
Отсюда: https://zennolab.com/discussion/threads/reguljarnye-vyrazhenija-na-vse-sluchai-zhizni.20829/

Но он найдёт в тексте все слова начинающиеся на go, например: goal, god, google
Мне же надо точное вхождение.
Для точно вхождения используется '==', пример:
C#:
string key1 = project.Variables["key1"].Value;
var listToCheck = project.Lists["file2"];
for (int i = 0; i < listToCheck.Count; i++)
    {
        if (listToCheck[i] == key1)
        {
            project.Variables["key2"].Value = listToCheck[i];
            return "Match is found";
        }
    }
 
  • Спасибо
Реакции: olegbez007 и Denchen

Denchen

Client
Регистрация
23.06.2020
Сообщения
22
Благодарностей
3
Баллы
3
Для точно вхождения используется '==', пример:
C#:
string key1 = project.Variables["key1"].Value;
var listToCheck = project.Lists["file2"];
for (int i = 0; i < listToCheck.Count; i++)
    {
        if (listToCheck[i] == key1)
        {
            project.Variables["key2"].Value = listToCheck[i];
            return "Match is found";
        }
    }
Понял спасибо, делаем через цикл и если, иначе.
 

olegbez007

Client
Регистрация
02.11.2022
Сообщения
178
Благодарностей
34
Баллы
28
Кубиками:
Посмотреть вложение 113439

с# (взять строку кубиком, положить в переменную key1, потом запускать код)
C#:
string key1 = project.Variables["key1"].Value;
var listToCheck = project.Lists["file2"];
for (int i = 0; i < listToCheck.Count; i++)
    {
        if (listToCheck[i].Contains(key1))
        {
            project.Variables["key2"].Value = listToCheck[i];
            return "Match is found";
        }
    }
Спасибо большое. С кодом что-то не срослось. а с кубиками все отлично.
 

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