Из списка в переменную (сниппет)

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Ребята, поделитесь, пожалуйста, сниппетом, как из списка взять строку по маске в переменную?
К примеру есть список, в нем строки:

I_I
I_II
I_III

Как нам по маске: I_II положить это значение I_II в переменную?

Спасибо за ранее!
 

Apostol

Client
Регистрация
25.12.2014
Сообщения
99
Благодарностей
65
Баллы
18
Ребята, поделитесь, пожалуйста, сниппетом, как из списка взять строку по маске в переменную?
Код:
// берем из переменной test текст, который надо искать
var textContains = project.Variables["test"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["Список 1"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
// читаем строку из списка
var str = sourceList[i];
// проверяем содержание текста в строке, если есть совпадение - ложим в его в переменную result
if (str.Contains(textContains))
{
return project.Variables["result"].Value = str;
}
}
}
// если совпадений не обнаружено - очищаем переменную result
return project.Variables["result"].Value = "";
 
  • Спасибо
Реакции: TheBoss

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Код:
// берем из переменной test текст, который надо искать
var textContains = project.Variables["test"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["Список 1"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
// читаем строку из списка
var str = sourceList[i];
// проверяем содержание текста в строке, если есть совпадение - ложим в его в переменную result
if (str.Contains(textContains))
{
return project.Variables["result"].Value = str;
}
}
}
// если совпадений не обнаружено - очищаем переменную result
return project.Variables["result"].Value = "";

Спасибо бро! А вот если тест из переменной надо брать не из переменный а точный, ну т.е. сам текст точный надо искать. как сделать?
 

Apostol

Client
Регистрация
25.12.2014
Сообщения
99
Благодарностей
65
Баллы
18
Спасибо бро! А вот если тест из переменной надо брать не из переменный а точный, ну т.е. сам текст точный надо искать. как сделать?
Положить точный текст для поиска в переменную test.

Ну или можно напрямую задать в коде, тогда в textContains положить конкретное значение, вместо значения из переменной. Например I_II
Код:
// Заменить
var textContains = project.Variables["test"].Value;
// На
var textContains = "I_II";
 
  • Спасибо
Реакции: TheBoss

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Ага. Спасибо!
Положить точный текст для поиска в переменную test.

Ну или можно напрямую задать в коде, тогда в textContains положить конкретное значение, вместо значения из переменной. Например I_II
Код:
// Заменить
var textContains = project.Variables["test"].Value;
// На
var textContains = "I_II";
Спасибо!
 

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Положить точный текст для поиска в переменную test.

Ну или можно напрямую задать в коде, тогда в textContains положить конкретное значение, вместо значения из переменной. Например I_II
Код:
// Заменить
var textContains = project.Variables["test"].Value;
// На
var textContains = "I_II";
Друг, если еще подскажешь, как размножить сразу искать в одном кубе насколько значений из одного и того же списка и сразу ложить их в разные переменные
 

Apostol

Client
Регистрация
25.12.2014
Сообщения
99
Благодарностей
65
Баллы
18
Друг, если еще подскажешь, как размножить сразу искать в одном кубе насколько значений из одного и того же списка и сразу ложить их в разные переменные
Что-то я логику не очень улавливаю. Если надо искать другое значение, то также в цикле перебираешь список и кладешь в переменную.
 

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Что-то я логику не очень улавливаю. Если надо искать другое значение, то также в цикле перебираешь список и кладешь в переменную.
Я про то, что мне нужно из разных, на самом деле списком - искать значения разные и в разные переменные из вставлять) например, если взять твой код - то логически это будет так:


// Лайкинг ЦА
var textContains = "Лайкинг ЦА";
var sourceList = project.Lists["mode_liking"];
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
var str = sourceList;
if (str.Contains(textContains))
{
return project.Variables["I_I"].Value = str;
}
}
}
return project.Variables["I_I"].Value = "";

// Лайкинг друзей
var textContains = "Лайкинг друзей";
var sourceList = project.Lists["mode_liking"];
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
var str = sourceList;
if (str.Contains(textContains))
{
return project.Variables["I_II"].Value = str;
}
}
}
return project.Variables["I_II"].Value = "";

// Комменты ЦА
var textContains = "Комменты ЦА";
var sourceList = project.Lists["mode_komments"];
lock(SyncObjects.ListSyncer)
{
for(int i=0; i < sourceList.Count; i++)
{
var str = sourceList;
if (str.Contains(textContains))
{
return project.Variables["II_I"].Value = str;
}
}
}
return project.Variables["II_I"].Value = "";


Но так, в одном кубе - не работает.
 

Apostol

Client
Регистрация
25.12.2014
Сообщения
99
Благодарностей
65
Баллы
18
Я про то, что мне нужно из разных, на самом деле списком - искать значения разные и в разные переменные из вставлять) например, если взять твой код - то логически это будет так:
Попробуй так:
Код:
string[] textContains = {"Лайкинг ЦА", "Лайкинг друзей", "Комменты ЦА"};
string result;
var sourceList = project.Lists["mode_liking"];
lock(SyncObjects.ListSyncer)
{
    for(int j=0; j < 3; j++)
    {   
        for(int i=0; i < sourceList.Count; i++)
        {
        var str = sourceList[i];
        if (str.Contains(textContains[j]))
            {
                if (j==0)
                {
                project.Variables["I_I"].Value = str;
                }
                if (j==1)
                {
                project.Variables["I_II"].Value = str;
                }
                if (j==2)
                {
                project.Variables["II_I"].Value = str;
                }
            }
        }
    }
}
return result = "Совпадений не обнаружено";
 

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Попробуй так:
Код:
string[] textContains = {"Лайкинг ЦА", "Лайкинг друзей", "Комменты ЦА"};
string result;
var sourceList = project.Lists["mode_liking"];
lock(SyncObjects.ListSyncer)
{
    for(int j=0; j < 3; j++)
    {  
        for(int i=0; i < sourceList.Count; i++)
        {
        var str = sourceList[i];
        if (str.Contains(textContains[j]))
            {
                if (j==0)
                {
                project.Variables["I_I"].Value = str;
                }
                if (j==1)
                {
                project.Variables["I_II"].Value = str;
                }
                if (j==2)
                {
                project.Variables["II_I"].Value = str;
                }
            }
        }
    }
}
return result = "Совпадений не обнаружено";

Вроде нормально все, с единственным но - перед вторым и третьем значением в переменной ставится пробел(
 

Вложения

Apostol

Client
Регистрация
25.12.2014
Сообщения
99
Благодарностей
65
Баллы
18
  • Спасибо
Реакции: TheBoss

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