Нужно вернуть строку в этом снипите

Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["tableSearchTextContains"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["SourceTable"];
// ищем в каждой строчке в таблице
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++)
        {
            // проверяем содержание текста в ячейке, если есть совпадение возвращаем
            // номер ячейки
            if (cells[j].Contains(textContains))
                return j;
        }
    }
}
// если ничего не нашли возвращаем "no"
return "no";
Этот снипет возвращает номер ячейки, что прописать в ретурн чтобы при нахождении заданного возвращал номер строки?
И как второй вариант удалял строку???
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
return i;
вместо return j;
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
А список в C# всегда через массив обрабатывают или есть другие вариант? А то массив сам по себе же при большом объеме данных медленно работает.
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Последнее редактирование:

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113

molotok

Client
Регистрация
17.04.2015
Сообщения
733
Благодарностей
358
Баллы
63
А как сделать, чтобы искало в определенном столбце?
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
А как сделать, чтобы искало в определенном столбце?
http://zennolab.com/discussion/threads/poisk-po-spiskam-i-tablicam-cherez-c-makros.10734/ тут есть все.

Код:
// берем регулярное выражение для парсинга из переменной
var parserRegexPattern = project.Variables["tableSearchRegex"].Value;
var parserRegex = new System.Text.RegularExpressions.Regex(parserRegexPattern);
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["SourceTable"];
// получаем таблицу, в которую будем класть
var destTable = project.Tables["OutputTable"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i=0; i < sourceTable.RowCount; i++)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // проверяем вторую ячейку регулярным выражением, если есть совпадение кладем результат во вторую таблицу
        if (parserRegex.IsMatch(cells[1]))
            destTable.AddRow(cells);
    }
}
if (parserRegex.IsMatch(cells[1])) ищет по 2 колонке
 
Последнее редактирование:
  • Спасибо
Реакции: molotok

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