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

Rimen

Client
Joined
Oct 28, 2019
Messages
405
Reaction score
237
Points
43
Здравствуйте!
Есть список и таблица.

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

В столбце А таблицы текстовое значение, в столбце B -- числовое.
Необходимо сравнить список со столбцом А, и получить сумму чисел столбца B всех строк, которые есть и в списке и в столбце А таблицы.
Если сможете помочь -- буду оч.признателен
 
Joined
Sep 27, 2019
Messages
69
Reaction score
44
Points
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;
 
  • Thank you
Reactions: Rimen

Rimen

Client
Joined
Oct 28, 2019
Messages
405
Reaction score
237
Points
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
Joined
May 22, 2020
Messages
359
Reaction score
267
Points
63
всем привет)
мб ктото сможет помочь мне, буду очень благодарен
помогите pdf файл преобразовать в тхт или png/jpg (изображения в общем)
так чтоб указал путь к файлу, и все страницы (сколько их там есть) конвертнулись.

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

Zd221

Client
Joined
Jun 1, 2019
Messages
5
Reaction score
0
Points
1
Хелп!)
Дано: Таблица1 со старой информацией и Таблица2 с новой информацией.
Нужно: Сравнить Таблицу1 с Таблицей2 по столбцу "J". Уникальные строки с Таблицы2, полученные в результате сравнения, положить в новую Таблицу3 и дозаписать в конец Таблицы1 для нахождения уникальных строк в будущем.
 
Joined
Sep 27, 2019
Messages
69
Reaction score
44
Points
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);
    }
}
 
  • Thank you
Reactions: Zd221

Zd221

Client
Joined
Jun 1, 2019
Messages
5
Reaction score
0
Points
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
Joined
Apr 14, 2012
Messages
1,344
Reaction score
298
Points
83
Подскажите, пожалуйста, как из 12-ти цифр, забрать последние 4 цифры и положить в переменную?
Помню, было такое решение, не могу найти
 

Mikhail B.

Moderator
Joined
Dec 23, 2014
Messages
14,333
Reaction score
5,431
Points
113
Подскажите, пожалуйста, как из 12-ти цифр, забрать последние 4 цифры и положить в переменную?
Помню, было такое решение, не могу найти
Code:
\d{4}(?=$)
 
  • Thank you
Reactions: Valiksim

Gunjubasik

Client
Joined
May 30, 2019
Messages
3,445
Reaction score
1,288
Points
113
Подскажите, пожалуйста, как из 12-ти цифр, забрать последние 4 цифры и положить в переменную?
Помню, было такое решение, не могу найти
Например такая, но это последние символы конечно...
Code:
.{4}(?=($|\r|\n))
А вот чисто цифры:

Code:
\d{4}(?=($|\r|\n))
Или так:
Code:
\d{4}$
 
Last edited:

iskrakovrov

Client
Joined
Mar 28, 2015
Messages
532
Reaction score
171
Points
43

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

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

henry88

Client
Joined
Dec 31, 2018
Messages
65
Reaction score
22
Points
8
Здравствуйте все, о выпадающем окне выбора, я в настоящее время знаю, что вы можете выбрать соответствующий текст через selecte, это очень хорошо, может соответствовать информации, но иногда и через значения, чтобы сделать выбор, в этом случае, случайные значения самых простых и беспроблемных, но часто с информацией не совпадает, я думал о методе, чтобы извлечь исходный код через регулярные отношения, добавить в список, а затем добавить значения, обработки списка, чтобы извлечь нужный текст, снова через регулярные, чтобы получить значение.

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

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

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


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

Attachments

Last edited:

Valiksim

Client
Joined
Apr 14, 2012
Messages
1,344
Reaction score
298
Points
83
Code:
\d{4}(?=$)
Code:
\d{4}(?=$)
Code:
\d{4}(?=$)
Благодарю за ответ, решает проблему.

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

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

Max Gudym

Client
Joined
Mar 24, 2018
Messages
15
Reaction score
6
Points
3
Здравствуйте! Помогите составить сниппет. Нужно удалять те строки из таблицы, в которых прописано значение 1 во втором (В) столбике. Но задача усложняется тем, что нужно удалять только в определенном диапазоне строк, например, с 1-й по 10-ю или 20-ю строки. На форуме подобного решения не нашел. Заранее искренее благодарю за помощь!

69468
 

b1zar

Client
Joined
Jun 29, 2019
Messages
107
Reaction score
66
Points
28
Здравствуйте! Помогите составить сниппет. Нужно удалять те строки из таблицы, в которых прописано значение 1 во втором (В) столбике. Но задача усложняется тем, что нужно удалять только в определенном диапазоне строк, например, с 1-й по 10-ю или 20-ю строки. На форуме подобного решения не нашел. Заранее искренее благодарю за помощь!

View attachment 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);
        }
    }
 
  • Thank you
Reactions: Max Gudym

Max Gudym

Client
Joined
Mar 24, 2018
Messages
15
Reaction score
6
Points
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
Joined
Jun 29, 2019
Messages
107
Reaction score
66
Points
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--;
        }
        
    }
 
  • Thank you
Reactions: Max Gudym

socsecret.ru

Client
Joined
Sep 30, 2017
Messages
344
Reaction score
207
Points
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-","");
 
Last edited:

Max Gudym

Client
Joined
Mar 24, 2018
Messages
15
Reaction score
6
Points
3
Потому что я косякнул со счетчиками.
Теперь работает как надо. Искренне благодарю за помощь!
 

Valiksim

Client
Joined
Apr 14, 2012
Messages
1,344
Reaction score
298
Points
83
С Новым годом всех!!!
Помогите найти сниппет, который останавливает выполнение программы, и даёт возможность выбора, куда пойти дальше:
- выводится окошко с выбором, "Да" или "Нет"
- чтобы пустить выполнение по одной из 2-х веток
Такой сниппет был тут, но найти не могу. Может быть кому-то он попадался недавно, ткните пальцем, пожалуйста

P.S. Нашёл вот тут
 
Last edited:

mayworkle

Client
Joined
Mar 10, 2016
Messages
150
Reaction score
11
Points
18
RestSharp кажись каботает
Приветствую, скажите пожалуйста, а как все таки подключили библу RestSharp к Zenne ?

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

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

Kurator

Client
Joined
May 10, 2016
Messages
80
Reaction score
2
Points
8
Привет! Нужен снипет. Дождаться загрузки определенного элемента. А именно Атрибут: innertext Тип поиска: regxp Значение: Skip\ ad и кликнуть по нему
 

revan

Client
Joined
Mar 29, 2012
Messages
23
Reaction score
8
Points
3
Всем привет!

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

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

Valiksim

Client
Joined
Apr 14, 2012
Messages
1,344
Reaction score
298
Points
83
я так понимаю он отсортировал не как числа все же
Отсортировано по 1-й цифре, надо сортировать по сумме или полному значению цифры
 
  • Thank you
Reactions: revan

revan

Client
Joined
Mar 29, 2012
Messages
23
Reaction score
8
Points
3
Как такое реализовать?
 

Valiksim

Client
Joined
Apr 14, 2012
Messages
1,344
Reaction score
298
Points
83
  • Thank you
Reactions: revan

Roman48

Client
Joined
Feb 28, 2016
Messages
2,058
Reaction score
742
Points
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
Joined
Sep 6, 2016
Messages
798
Reaction score
817
Points
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;
 
  • Thank you
Reactions: Roman48

Roman48

Client
Joined
Feb 28, 2016
Messages
2,058
Reaction score
742
Points
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 и потом обратно переходит по ссылке, а сейчас он без останова переходит.
 
Last edited:

volody00

Client
Joined
Sep 6, 2016
Messages
798
Reaction score
817
Points
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;
 
  • Thank you
Reactions: Roman48

Users Who Are Viewing This Thread (Total: 2, Members: 0, Guests: 2)