Замена ячеек в таблице

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Есть таблица, состоит из 6 столбцов и большого количества строк от 1000 до 20000. Иногда будет возникать ситуация при которой надо будет найти в столбце А все ячейки, соответствующие значению переменной. Такая ячейка будет примерно в каждой двадцатой строке. Вот надо будет найти все эти ячейки и заменить в них значение на значение другой переменной. При этом остальную часть строки (это 5 других столбцов) трогать нельзя. Не могу придумать как это сделать. Чувствую, что скорее всего средствами C# , но абсолютно не имею знаний для этого) Помогите пожалуйста.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 452
Благодарностей
1 886
Баллы
113
Можно стандартными.
Инициализируете счетчик, устанавливаете его в номер строки, которую брать. Берёте в этой строке первую ячейку, проверяете регуляркой есть ли там то, что необходимо. Если есть, то Операция над таблицами - Запись в ячейку - номер строки известен = счетчику, ячейка А, и записываете в неё то, что необходимо, после чего продолжаете цикл до завершения строк в файле.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
попробуйте так

var tab = project.Tables["Таблица 1"];
var pattern = project.Variables["переменная какая -то"].Value;
var setdata = project.Variables["переменная какая -то2"].Value;

for(int i = 0;i<tab.RowCount;i++)
{
if(tab.GetCell("A",i)==pattern)
{
tab.SetCell("A",i) = setdata;
}
}
return 0;
 
  • Спасибо
Реакции: stmult

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Спасибо всем кто откликнулся! ) Настраиваю вот так http://joxi.ru/Vky5Us__TJCPUfrwWZk и выдает какую-то ошибку.
 

rostonix

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

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Нет всё равно не получается. пишет - действие не выполнено.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
а что еще пишет? по аглицки должен в логах ругаться
 

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Если честно не уверен, что вообще правильно настроил, так как у меня проект даже стартовать отказывается) Но выводит вот такое http://joxi.ru/E9K5UhjKTJAzdaCAd8s
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Да... я проверил, там немного синтаксис другой. Замените строчку на
tab.SetCell("A",i,setdata);
 
  • Спасибо
Реакции: stmult

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Благодарностей
37
Баллы
18
Спасибо большое , всё работает! Скажите в можно ли дописать в этот скрипт как-то условие, что если была произведена хоть одна замена, то в переменную результата записывалось бы значение 1 например, а если ни одной замены не было, то 0. ?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
var tab = project.Tables["Таблица 1"];
var pattern = project.Variables["переменная какая -то"].Value;
var setdata = project.Variables["переменная какая -то2"].Value;
int counter = 0;

for(int i = 0;i<tab.RowCount;i++)
{
if(tab.GetCell("A",i)==pattern)
{
tab.SetCell("A",i,setdata);
counter ++;
}
}
if(counter ==0)
{
return 0;
}else
{
return 1;
}
вы это имели ввиду?
 

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