Бесплатные снипеты на заказ

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
Здравствуйте!
Есть список и таблица.

В таблице два столбца.

В столбце А таблицы текстовое значение, в столбце B -- числовое.
Необходимо сравнить список со столбцом А, и получить сумму чисел столбца B всех строк, которые есть и в списке и в столбце А таблицы.
Если сможете помочь -- буду оч.признателен
 
Регистрация
27.09.2019
Сообщения
69
Благодарностей
44
Баллы
18
Здравствуйте!
Есть список и таблица.

В таблице два столбца.

В столбце А таблицы текстовое значение, в столбце B -- числовое.
Необходимо сравнить список со столбцом А, и получить сумму чисел столбца B всех строк, которые есть и в списке и в столбце А таблицы.
Если сможете помочь -- буду оч.признателен
В сниппете убрать галку "не возвращать значение" и указать результирующую переменную. Если совпадения найдутся - вернет общую сумму, если нет - выйдет по красной ветке
C#:
var list = project.Lists["myList"];
var table = project.Tables["myTable"];

int sum = 0;

foreach (string line in list)
{
    for (int i = 0; i < table.RowCount; i++)
    {
        if (line == table.GetCell(0, i))
        {
            sum += int.Parse(table.GetCell(1, i));
        }
    }
}

if (sum > 0) return sum.ToString();
else return null;
 
  • Спасибо
Реакции: Rimen

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
В сниппете убрать галку "не возвращать значение" и указать результирующую переменную. Если совпадения найдутся - вернет общую сумму, если нет - выйдет по красной ветке
C#:
var list = project.Lists["myList"];
var table = project.Tables["myTable"];

int sum = 0;

foreach (string line in list)
{
    for (int i = 0; i < table.RowCount; i++)
    {
        if (line == table.GetCell(0, i))
        {
            sum += int.Parse(table.GetCell(1, i));
        }
    }
}

if (sum > 0) return sum.ToString();
else return null;
Спасибо добрый человек! Работает.
Вы очень помогли! Низкий поклон :az:
 

ex3maL

Client
Регистрация
22.05.2020
Сообщения
359
Благодарностей
267
Баллы
63
всем привет)
мб ктото сможет помочь мне, буду очень благодарен
помогите pdf файл преобразовать в тхт или png/jpg (изображения в общем)
так чтоб указал путь к файлу, и все страницы (сколько их там есть) конвертнулись.

на гитхабе и прочих ресурсах горы кода, но к сожалению я не разбираюсь в нем (даже в itextsharpe). так что буду благодарен за помощь.
 

Zd221

Client
Регистрация
01.06.2019
Сообщения
5
Благодарностей
0
Баллы
1
Хелп!)
Дано: Таблица1 со старой информацией и Таблица2 с новой информацией.
Нужно: Сравнить Таблицу1 с Таблицей2 по столбцу "J". Уникальные строки с Таблицы2, полученные в результате сравнения, положить в новую Таблицу3 и дозаписать в конец Таблицы1 для нахождения уникальных строк в будущем.
 
Регистрация
27.09.2019
Сообщения
69
Благодарностей
44
Баллы
18
Хелп!)
Дано: Таблица1 со старой информацией и Таблица2 с новой информацией.
Нужно: Сравнить Таблицу1 с Таблицей2 по столбцу "J". Уникальные строки с Таблицы2, полученные в результате сравнения, положить в новую Таблицу3 и дозаписать в конец Таблицы1 для нахождения уникальных строк в будущем.
Проверьте
C#:
var t1 = project.Tables["Таблица 1"];
var t2 = project.Tables["Таблица 2"];
var t3 = project.Tables["Таблица 3"];
string cell = string.Empty;
int rows = t2.RowCount;

for ( int i = 0; i < rows; i++)
{
    cell = t2.GetCell("J", i);
    if (!t1.GetColumn("J").Contains(cell))
    {
        var row = t2.GetRow(i);
        t1.AddRow(row);
        t3.AddRow(row);
    }
}
 
  • Спасибо
Реакции: Zd221

Zd221

Client
Регистрация
01.06.2019
Сообщения
5
Благодарностей
0
Баллы
1
Проверьте
C#:
var t1 = project.Tables["Таблица 1"];
var t2 = project.Tables["Таблица 2"];
var t3 = project.Tables["Таблица 3"];
string cell = string.Empty;
int rows = t2.RowCount;

for ( int i = 0; i < rows; i++)
{
    cell = t2.GetCell("J", i);
    if (!t1.GetColumn("J").Contains(cell))
    {
        var row = t2.GetRow(i);
        t1.AddRow(row);
        t3.AddRow(row);
    }
}
Спасибо, мастер) Моя задача наконец-то решена!
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
Подскажите, пожалуйста, как из 12-ти цифр, забрать последние 4 цифры и положить в переменную?
Помню, было такое решение, не могу найти
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 327
Благодарностей
5 429
Баллы
113
  • Спасибо
Реакции: Valiksim

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 442
Благодарностей
1 287
Баллы
113
Подскажите, пожалуйста, как из 12-ти цифр, забрать последние 4 цифры и положить в переменную?
Помню, было такое решение, не могу найти
Например такая, но это последние символы конечно...
Код:
.{4}(?=($|\r|\n))
А вот чисто цифры:

Код:
\d{4}(?=($|\r|\n))
Или так:
Код:
\d{4}$
 
Последнее редактирование:
  • Спасибо
Реакции: Valiksim и Mikhail B.

iskrakovrov

Client
Регистрация
28.03.2015
Сообщения
532
Благодарностей
171
Баллы
43

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с iskrakovrov какие-либо сделки.

Подскажите Есть 2 таблицы. Сравнить по первому столбцу. Оставить те, которых нет в обеих одновременно таблицах. То сеть только уникальные с обеих страниц.
Заранее спасибо.
 

henry88

Client
Регистрация
31.12.2018
Сообщения
65
Благодарностей
22
Баллы
8
Здравствуйте все, о выпадающем окне выбора, я в настоящее время знаю, что вы можете выбрать соответствующий текст через selecte, это очень хорошо, может соответствовать информации, но иногда и через значения, чтобы сделать выбор, в этом случае, случайные значения самых простых и беспроблемных, но часто с информацией не совпадает, я думал о методе, чтобы извлечь исходный код через регулярные отношения, добавить в список, а затем добавить значения, обработки списка, чтобы извлечь нужный текст, снова через регулярные, чтобы получить значение.

Звуки могут быть немного сложными, просто извлечь выпадающий код, через обычное добавление в список, получить текст, где количество строк (значение +1, по умолчанию от 0, чтобы начать подсчет)

Мне нужно получить количество строк, на которых находится текст списка, фрагмент кода C#

Переведено с помощью DeepL.com/Translator (бесплатная версия)


Я нашел решение.
 

Вложения

  • 33,2 КБ Просмотры: 0
Последнее редактирование:

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
Благодарю за ответ, решает проблему.

Например такая, но это последние символы конечно...
Код:
.{4}(?=($|\r|\n))
А вот чисто цифры:

Код:
\d{4}(?=($|\r|\n))
Или так:
Код:
\d{4}$
Обстоятельненько. Благодарю. Неисповедимы, как говорят, пути регулярок.
Кстати, решение многострочное, часто бывает необходимым. Можно было (а лучше "надо было бы") бы собрать коллекцию решений, по переводу строк в одну строку, и наоборот.
НО, на моей вопрос ответили сполна. Огромное спасибо!
 

Max Gudym

Client
Регистрация
24.03.2018
Сообщения
15
Благодарностей
6
Баллы
3
Здравствуйте! Помогите составить сниппет. Нужно удалять те строки из таблицы, в которых прописано значение 1 во втором (В) столбике. Но задача усложняется тем, что нужно удалять только в определенном диапазоне строк, например, с 1-й по 10-ю или 20-ю строки. На форуме подобного решения не нашел. Заранее искренее благодарю за помощь!

69468
 

b1zar

Client
Регистрация
29.06.2019
Сообщения
107
Благодарностей
65
Баллы
28
Здравствуйте! Помогите составить сниппет. Нужно удалять те строки из таблицы, в которых прописано значение 1 во втором (В) столбике. Но задача усложняется тем, что нужно удалять только в определенном диапазоне строк, например, с 1-й по 10-ю или 20-ю строки. На форуме подобного решения не нашел. Заранее искренее благодарю за помощь!

Посмотреть вложение 69468
C#:
var textContains = "1"; //Текст который будем искать
string column = "1"; //Столбец в котором будем искать
var sourceTable = project.Tables["Control"]; // получаем таблицу, в которой будем искать
int line = 20; //Сколько первых строк будет затронуто
// ищем в каждой строчке в таблице
    for(int i=0; i < line; i++)
    {
        // читаем строку из таблицы
        var cells = sourceTable.GetCell(column, i);

            if (cells.Contains(textContains))
            {
            project.Tables["Control"].DeleteRow(i);
        }
    }
 
  • Спасибо
Реакции: Max Gudym

Max Gudym

Client
Регистрация
24.03.2018
Сообщения
15
Благодарностей
6
Баллы
3
C#:
var textContains = "1"; //Текст который будем искать
string column = "1"; //Столбец в котором будем искать
var sourceTable = project.Tables["Control"]; // получаем таблицу, в которой будем искать
int line = 20; //Сколько первых строк будет затронуто
// ищем в каждой строчке в таблице
    for(int i=0; i < line; i++)
    {
        // читаем строку из таблицы
        var cells = sourceTable.GetCell(column, i);

            if (cells.Contains(textContains))
            {
            project.Tables["Control"].DeleteRow(i);
        }
    }
Благодарю! Попробовал, но почему-то неправильно работает. И с 0-вой по 19-ю строки (первые 20) не все строки со значением 1 в столбце B удаляет (некоторые пропускает), и затрагивает некоторые строки после 20 строки, которые удалять не нужно. Не понял как код работает, он как-то хаотично строки удаляет.

Прописывал так:
var textContains = "1"; //Текст который будем искать
string column = "B"; //Столбец в котором будем искать
var sourceTable = project.Tables["my_table"]; // получаем таблицу, в которой будем искать
int line = 20; //Сколько первых строк будет затронуто
// ищем в каждой строчке в таблице
    for(int i=0; i < line; i++)
    {
        // читаем строку из таблицы
        var cells = sourceTable.GetCell(column, i);

            if (cells.Contains(textContains))
            {
            project.Tables["my_table"].DeleteRow(i);
        }
    }
 

b1zar

Client
Регистрация
29.06.2019
Сообщения
107
Благодарностей
65
Баллы
28
Благодарю! Попробовал, но почему-то неправильно работает. И с 0-вой по 19-ю строки (первые 20) не все строки со значением 1 в столбце B удаляет (некоторые пропускает), и затрагивает некоторые строки после 20 строки, которые удалять не нужно. Не понял как код работает, он как-то хаотично строки удаляет.
Потому что я косякнул со счетчиками.
C#:
var textContains = "1"; //Текст который будем искать
string column = "B"; //Столбец в котором будем искать
var sourceTable = project.Tables["my_table"]; // получаем таблицу, в которой будем искать
int line = 20; //Сколько первых строк будет затронуто
// ищем в каждой строчке в таблице
    for(int i=0; i < line; i++)
    {
        // читаем строку из таблицы
        var cells = sourceTable.GetCell(column, i);

            if (cells.Contains(textContains))
            {
            project.Tables["my_table"].DeleteRow(i);
                line--;
                i--;
        }
        
    }
 
  • Спасибо
Реакции: Max Gudym

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
343
Благодарностей
207
Баллы
43
Записываю в глобальную переменную числа, обрамлённые знаком "-" (если этот знак вдруг неудобен для кода, можно любой другой). К примеру, переменная может принять значение: "-8--4--14--2-". Требуется код, с помощью которого можно искать в этой переменной "-ЧИСЛО-". Если найдено, то удалять "-ЧИСЛО-" из переменной. Если не найдено, то добавлять. Я пока дошёл вот до чего:

C#:
string gbVar = Convert.ToString(project.GlobalVariables["[email protected]", "profile"]);

if (gbVar.Contains("-1-"))
{
gbVar.Replace("-1-","");
}

else
{
gbVar += "-2-";
}
Ошибки нет, но и с переменной ничего не происходит. Видимо проблема в gbVar.Replace("-1-","");
 
Последнее редактирование:

Max Gudym

Client
Регистрация
24.03.2018
Сообщения
15
Благодарностей
6
Баллы
3

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
С Новым годом всех!!!
Помогите найти сниппет, который останавливает выполнение программы, и даёт возможность выбора, куда пойти дальше:
- выводится окошко с выбором, "Да" или "Нет"
- чтобы пустить выполнение по одной из 2-х веток
Такой сниппет был тут, но найти не могу. Может быть кому-то он попадался недавно, ткните пальцем, пожалуйста

P.S. Нашёл вот тут
 
Последнее редактирование:

mayworkle

Client
Регистрация
10.03.2016
Сообщения
150
Благодарностей
11
Баллы
18
RestSharp кажись каботает
Приветствую, скажите пожалуйста, а как все таки подключили библу RestSharp к Zenne ?

я саму библиотеку не нашел...

тоже танцую с бубном - раз сам бубен :-)
 

Kurator

Client
Регистрация
10.05.2016
Сообщения
80
Благодарностей
2
Баллы
8
Привет! Нужен снипет. Дождаться загрузки определенного элемента. А именно Атрибут: innertext Тип поиска: regxp Значение: Skip\ ad и кликнуть по нему
 

revan

Client
Регистрация
29.03.2012
Сообщения
23
Благодарностей
8
Баллы
3
Всем привет!

Имеется таблица с данными.
В столбце C счетчик использования этих данных.
71662
Нужно найти минимальное значение и выдать ответ: номер строки с минимальным значением.
Если в ячейке пустота, то = 0
Если минимальных значений несколько (как на скриншоте), можно выдать любое значение из них (3,5,8 ), не критично.
Заранее огромное спасибо! Очень выручите меня если решите данную задачу:-)

UPD: Эта задача частично решается через сортировку таблицы по столбцам с галочкой "Сортировать, как числа если это возможно",
но сортируется не всегда адекватно, пример:
71663
я так понимаю он отсортировал не как числа все же
 
Последнее редактирование:

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
  • Спасибо
Реакции: revan

revan

Client
Регистрация
29.03.2012
Сообщения
23
Благодарностей
8
Баллы
3
Как такое реализовать?
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 340
Благодарностей
298
Баллы
83
  • Спасибо
Реакции: revan

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
Помогите пожалуйста, к этому сниппету прикрутить, Refferel, переменную где будут менятся ссылки
C#:
HtmlElement he = null;
for (int i = 0; i<19; i++)
{
    var tab = instance.ActiveTab;
    tab.Navigate(@project.Variables["url"].Value);
    if (tab.IsBusy) tab.WaitDownloading();
//    he = tab.FindElementByAttribute("select","name","locationId","text",0);// прописать свои параметры поиска элемента
    he = tab.FindElementByXPath("//a[contains(text(), 'Поиск защищён технологией Protect')]", 0);
    
    if (!he.IsNull)
    {
            return "OK";
    }
}
return null;
 

volody00

Client
Регистрация
06.09.2016
Сообщения
793
Благодарностей
812
Баллы
93
Помогите пожалуйста, к этому сниппету прикрутить, Refferel, переменную где будут менятся ссылки
если верно понял, то так (версия не ниже 7.2.0.0):
C#:
HtmlElement he = null;
for (int i = 0; i<19; i++)
{
    var tab = instance.ActiveTab;
    tab.Navigate(@project.Variables["url"].Value);
    if (tab.IsBusy) tab.WaitDownloading();
//    he = tab.FindElementByAttribute("select","name","locationId","text",0);// прописать свои параметры поиска элемента
    he = tab.FindElementByXPath($"//a[contains(text(), '{project.Variables["Refferel"].Value}')]", 0);
    
    if (!he.IsNull)
    {
            return "OK";
    }
}
return null;
 
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
если верно понял, то так (версия не ниже 7.2.0.0):
C#:
HtmlElement he = null;
for (int i = 0; i<19; i++)
{
    var tab = instance.ActiveTab;
    tab.Navigate(@project.Variables["url"].Value);
    if (tab.IsBusy) tab.WaitDownloading();
//    he = tab.FindElementByAttribute("select","name","locationId","text",0);// прописать свои параметры поиска элемента
    he = tab.FindElementByXPath($"//a[contains(text(), '{project.Variables["Refferel"].Value}')]", 0);
 
    if (!he.IsNull)
    {
            return "OK";
    }
}
return null;
Версия у меня самая последняя, это для сниппета, разве имеет значение.
Получилось прикрутить рефферела,
C#:
HtmlElement he = null;
for (int i = 0; i<30; i++)
{
    var tab = instance.ActiveTab;
    tab.Navigate(project.Variables["url"].Value, project.Variables["refferel"].Value);
    if (tab.IsBusy) tab.WaitDownloading();
//    he = tab.FindElementByAttribute("select","name","locationId","text",0);// прописать свои параметры поиска элемента
    he = tab.FindElementByXPath("//a[contains(text(), 'Поиск защищён технологией Protect')]

", 0);
    
    if (!he.IsNull)
    {
            return "OK";
    }
}
return null;
Теперь не хватает паузы, между переходами, секунд по 5, типа если не нашел, XPath, то делает паузу, секунд 5 и потом обратно переходит по ссылке, а сейчас он без останова переходит.
 
Последнее редактирование:

volody00

Client
Регистрация
06.09.2016
Сообщения
793
Благодарностей
812
Баллы
93
Теперь не хватает паузы, между переходами, секунд по 5, типа если не нашел, XPath, то делает паузу, секунд 5 и потом обратно переходит по ссылке, а сейчас он без останова переходит.
C#:
HtmlElement he = null;
for (int i = 0; i<30; i++)
{
    var tab = instance.ActiveTab;
    tab.Navigate(project.Variables["url"].Value, project.Variables["refferel"].Value);
    if (tab.IsBusy) tab.WaitDownloading();
//    he = tab.FindElementByAttribute("select","name","locationId","text",0);// прописать свои параметры поиска элемента
    he = tab.FindElementByXPath("//a[contains(text(), 'Поиск защищён технологией Protect')]", 0);
    
    if (!he.IsNull)
    {
            return "OK";
    }
    project.SendInfoToLog("ждем появления элемента");
    Thread.Sleep(5000);
}
return null;
 
  • Спасибо
Реакции: Roman48

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