Zennoposter: как проверить наличие строки в списке

Довольно часто мы собираем в список нужные данные. Это могут быть ссылки, данные о пользователях сайта, названия товаров и т.д. И практически всегда встает задача избавиться от дубликатов (т.е. не вносить в список строку, которая уже в нем есть). Стандартными средствами Zennoposter это реализовать невозможно. Поэтому ниже представлен коротенький фрагмент c# кода для реализации этой задачи

// берем из переменной текст, который надо искать
var textContains = project.Variables["listSearchTextContains"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
            return "yes";
    }
}
// если ничего не нашли возвращаем "no"
return "no";

 

Несколько пояснений для тех, кто только начинает работать с Zennoposter из кода.
Обращение к переменной Zennoposter обычно производится через конструкцию {-Variable.name-}. Однако чтобы получить или записать значение в эту переменную в c# коде, используется следующая конструкция: project.Variables[«name»].Value;

В приведенном выше коде мы взяли значение из переменной проекта и записали в нашу локальную переменную var textContains.
Далее в цикле проверяется каждая строчка списка на совпадение со строкой из переменной. Для этого используется полезный метод строки Contains(), который возвращает true, если указанный аргумент совпадает с строкой и false — в противном случае.

Когда в c# используется оператор return, то программный код прекращается и результат помещается в переменную, которая указывается под строкой «Положить результат в переменную».

 1439756090_return

 

 

Смотрите также

Zennoposter. Как конвертировать файл из одной кодировки в другую При работе с текстовыми файлами в кодировке, отличной от utf8 в переменные помещаются "крякозябры". Например, при чтении файла в кодировке iso-8859-1....