Проверка текста в таблице

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
Всем привет знатокам Zenno!
Как проверить слово или словосочетания в таблице и взять его id.
Конкретнее. Есть таблица, там 2 столбца. Первое id товара, второе наименование товара.
Строк примерно 50000. (т.е. единиц товара)
Вопрос: Надо найти определенный товар по наименованию и взять его id ?
Есть ли решение без использование счетчиков ? Потому что в другой таблице 100500 наименовании товара.
Помогите пожалуйста.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
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();
        // проверяем содержание текста в ячейке
            if (cells[1].Contains(textContains))
                return cells[0].ToString();
        }
    }
}
// если ничего не нашли возвращаем "no"
return "no";
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
тут в любом случае цикл.
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
Это С# код ? Или яваскрипт ? Программирование не знаю.
Как я понял tableSearchTextContains - мой искомый текст.
SourceTable - название таблицы.
Допустим нашли текст, а дальше как определить эту ячейку и найти его id ?
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
Этот код положил в С# и сохранил проект. Запустил, проект отвалился. Лог прикрепил Что это значит ?
 

Вложения

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
return cells[0].ToString();
поменйяте на
{ return cells[0].ToString(); }
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
Поменял, в логе таже самая ошибка
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
Вот
 

Вложения

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
это не для тестирования макроса а для экшена C#
таблица с именем и переменная должны быть созданы
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
У меня вообще весь проект перестал выполняться(даже с начала). Перезагрузил PM. Тоже самое. При нажатии каждого блока выдает ошибку в логе.
 

Вложения

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
таблица с именем и переменная была создана как в скрине, до подключение С# кода
В чем ошибка ?
 
Последнее редактирование:

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
лишняя скобка } перед return
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
Все равно ошибка. Помогите люди
 

Вложения

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
лишняя не перед была, а после)
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
лишняя не перед была, а после)
Убрал после, в принципе "работает". Но всегда возвращает "no", хотя все наименования есть.
Можете проверить у себя ?
Что неправильно в коде ?
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
в переменной name есть данные для поиска?
таблица имеет в проекте имя table1?
данные поиска лежат в ячейке второй?
 
  • Спасибо
Реакции: javara777

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8
В чем ошибка ?
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Ну вы писали про две ячейки) Мы и делали поиск по второй, а не по третьей
 

javara777

Client
Регистрация
12.08.2014
Сообщения
63
Благодарностей
2
Баллы
8

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