Объединить два сниппета

Stig

Client
Регистрация
29.09.2015
Сообщения
14
Благодарностей
13
Баллы
3
Добрый день.
Как можно найденную строку разложить региксом по переменным с удалением строки в таблице.
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["A_analyst_UR"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["JSONanalyst"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i=0; i < sourceTable.RowCount; i++)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // пройдем в цикле по всем ячейкам
        for (int j=0; j < cells.Length; j++)
        {
            // проверяем содержание текста в ячейке, если есть совпадение возвращаем "yes"
            if (cells[j].Contains(textContains))
                return String.Join(":", sourceTable.GetRow(i));
        }
    }
}
// если ничего не нашли возвращаем "no" и уходим по красной
throw new Exception("no");
Нужно раскидать regexсом найденную строку по переменным
Код:
string sss = project.Variables["regexsss"].Value; // переменная со значением login:pass:email
project.Variables["Login"].Value = Regex.Match(sss, "(?<=^).*?(?=:)").Value;
project.Variables["Pass"].Value = Regex.Match(sss, "(?<=:).*?(?=:)").Value;
project.Variables["Email"].Value = Regex.Match(sss, "(?<=:.*:).*?(?=:)").Value;
и удалить найденую строку
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Добрый день.
Как можно найденную строку разложить региксом по переменным с удалением строки в таблице.
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["A_analyst_UR"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["JSONanalyst"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i=0; i < sourceTable.RowCount; i++)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // пройдем в цикле по всем ячейкам
        for (int j=0; j < cells.Length; j++)
        {
            // проверяем содержание текста в ячейке, если есть совпадение возвращаем "yes"
            if (cells[j].Contains(textContains))
                return String.Join(":", sourceTable.GetRow(i));
        }
    }
}
// если ничего не нашли возвращаем "no" и уходим по красной
throw new Exception("no");
Нужно раскидать regexсом найденную строку по переменным
Код:
string sss = project.Variables["regexsss"].Value; // переменная со значением login:pass:email
project.Variables["Login"].Value = Regex.Match(sss, "(?<=^).*?(?=:)").Value;
project.Variables["Pass"].Value = Regex.Match(sss, "(?<=:).*?(?=:)").Value;
project.Variables["Email"].Value = Regex.Match(sss, "(?<=:.*:).*?(?=:)").Value;
и удалить найденую строку
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["A_analyst_UR"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["JSONanalyst"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i=0; i < sourceTable.RowCount; i++)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // пройдем в цикле по всем ячейкам
        for (int j=0; j < cells.Length; j++)
        {
            // проверяем содержание текста в ячейке, если есть совпадение возвращаем "yes"
            if (cells[j].Contains(textContains))
                project.Variables["Login"].Value = cells[0];
                project.Variables["Pass"].Value = cells[1];
                project.Variables["Email"].Value = cells[2];
                sourceTable.DeleteRow(i);
                return "OK";
           
        }
    }
}
// если ничего не нашли возвращаем "no" и уходим по красной
throw new Exception("no");
 
  • Спасибо
Реакции: sentinel и Stig

Stig

Client
Регистрация
29.09.2015
Сообщения
14
Благодарностей
13
Баллы
3
Спасибо
 

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