Найти ячейку в который есть определенный текст

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
Здравствуйте!
Столкнулся с такой проблемой:
- Есть 2 таблицы с данными, исходя из данных которых создать 1 таблицу.
Проблема в следующем, берем из таблицы1 данные из определенной ячейки и вносим в переменную, далее нужно найти ячейку в Таблице2 в которой есть эти данные (совпадение может быть не точным, site.ru = site.ru/123) и получить информацию о том, в какой строке эта ячейка находится.
Не могу разобраться ни с поиском, ни с получением строки.
Подскажите пожалуйста!
 
Последнее редактирование:

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
Самый дубовый вариант:
Код:
IZennoTable tblOne = project.Tables["таблица один"];
IZennoTable tblTwo = project.Tables["таблица два"];

for(int i=0; i<tblOne.RowCount; i++){
    string cellOne = tbOne.GetCell(0,i); //в первом столбце первой таблицы
   
    for (int n=0; n<tblTwo.RowCount; n++) {
        string cellTwo = tbTwo.GetCell(0,n); //в первом столбце второй таблицы
        if (cellTwo==cellOne){
            project.SendInfoToLog(String.Format("Нашли совпадение: символы {0} в строке таблицы 1 №{1} и в строке таблицы 2 №{2}", cellTwo, i, n));
            break;
        }
    }
}
 

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
Так суть то в том, что мне нужно узнать в какой строке второй таблице находится то, что я беру из первой таблицы, что бы потом сформировать третий файл на основе этих данных,а не перебирать)
 

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
Схема такая.
Берем данные из ячейки 1 таблицы1, ищем эти данные в таблице 2 (Можно с указанием столбца, это не важно), когда находим ячейку в таблице2 в которой размещены данные которые взяли из таблицы 1, нужно записать в переменную номер строки, в которой расположены эти данные в таблице2 =)
 

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
При каждом выполнении строки project.SendInfoToLog... есть полный набор информации: строка, номер строки в первой таблице и номер строки во второй таблице. Если нужно фиксировать, можно добавлять эти номера в список:
IZennoList lstResult = project.Lists["result"];
...и после project.SendInfoToLog строка:
lstResult.Add(n);
 

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
При каждом выполнении строки project.SendInfoToLog... есть полный набор информации: строка, номер строки в первой таблице и номер строки во второй таблице. Если нужно фиксировать, можно добавлять эти номера в список:
IZennoList lstResult = project.Lists["result"];
...и после project.SendInfoToLog строка:
lstResult.Add(n);
IZennoTable tblOne = project.Tables["tblOne"];
IZennoTable tblTwo = project.Tables["tblTwo"];
IZennoList lstResult = project.Lists["result"];

for(int i=0; i<tblOne.RowCount; i++){
string cellOne = tblOne.GetCell(0,i); //в первом столбце первой таблицы

for (int n=0; n<tblTwo.RowCount; n++) {
string cellTwo = tblTwo.GetCell(0,n); //в первом столбце второй таблицы
if (cellTwo==cellOne){
project.SendInfoToLog(String.Format("Нашли совпадение: символы {0} в строке таблицы 1 №{1} и в строке таблицы 2 №{2}", cellTwo, i, n));
lstResult.Add(n);
break;
}
}
}

Не правильно вставил?
 

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
IZennoTable tblOne = project.Tables["tblOne"];
IZennoTable tblTwo = project.Tables["tblTwo"];
IZennoList lstResult = project.Lists["result"];

for(int i=0; i<tblOne.RowCount; i++){
string cellOne = tblOne.GetCell(0,i); //в первом столбце первой таблицы

for (int n=0; n<tblTwo.RowCount; n++) {
string cellTwo = tblTwo.GetCell(0,n); //в первом столбце второй таблицы
if (cellTwo==cellOne){
project.SendInfoToLog(String.Format("Нашли совпадение: символы {0} в строке таблицы 1 №{1} и в строке таблицы 2 №{2}", cellTwo, i, n));
lstResult.Add(n);
break;
}
}
}

Не правильно вставил?
Правильно. В списке будут номера строк из второй таблицы.
 

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
Правильно. В списке будут номера строк из второй таблицы.
Если не вставлять:
IZennoList lstResult = project.Lists["result"]; и lstResult.Add(n);
То работает, но в лог не выводит, а если вставить, то вообще не работает, ошибка.
 

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
Если не вставлять:
IZennoList lstResult = project.Lists["result"]; и lstResult.Add(n);
То работает, но в лог не выводит, а если вставить, то вообще не работает, ошибка.
а, список создан с названием result, тут нет ошибки, 3 раза проверил))
Так что где именно косяк - не понятно(
 
Последнее редактирование:

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
а, список создан с названием result, тут нет ошибки, 3 раза проверил))
Так что где именно косяк - не понятно(
Тип Время Сообщение
18:14:12 Компиляция кода Ошибка в действии "CS1061" ""ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel" не содержит определение для "List". Не удалось найти метод расширения "List", принимающий первый аргумент типа "ZennoLab.InterfacesLibrary.ProjectModel.IZennoPosterProjectModel" (пропущена директива using или ссылка на сборку?)". [Строка: 2; Cтолбец: 32]
 

vtsogood

Client
Регистрация
23.03.2016
Сообщения
36
Благодарностей
1
Баллы
8
Исправил, выполняться стало, но почему то в файл не записывает ничего
 

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