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

deopl

Client
Регистрация
06.12.2011
Сообщения
667
Благодарностей
126
Баллы
43
Если бы очередность действий была другая, то и результат был бы со знаком +. Сначала нужно было найти, а потом написать и ссылочку прикрепить! Я бы тебе лайк поставил и сам бы не нервничал :-) А так, нервы шалят уже, кидаюсь на людей )
Ссылка в закладках на компе. Я сейчас с планшета, поэтому и не помню точно как называлась.
 

Fantozzzio

Client
Регистрация
11.05.2015
Сообщения
52
Благодарностей
7
Баллы
8
Ссылка в закладках на компе. Я сейчас с планшета, поэтому и не помню точно как называлась.
Не уверен, что в данном случае подойдет конструкция project.Variables["Имяпеременной"].Value = project.Variables["Имяпеременной"].Value.Replace("чтоменяем","начтоменяем");
Насколько я понимаю, тут нужно каким-то боком заюзать ToUpper и применить к совпадению, найденному регуляркой.
 

Fantozzzio

Client
Регистрация
11.05.2015
Сообщения
52
Благодарностей
7
Баллы
8
Нашел снипет на форуме http://zennolab.com/discussion/threads/kazhdoe-predlozhenie-s-zaglavnoj-bukvy.19533/#post-126336
кое-как методом научного втыка адаптировал под свои нужды - и вот работает.
Код:
string str = project.Variables["BaseText"].Value;
{
    string[] s = Regex.Split(str, @"(?<=<p>)([а-я])");
    for (int i = 0; i < s.Length; i++)
            {
                    if (s[i].Length > 1)
                         s[i] = s[i].Substring(0, 0).ToUpper() + s[i].Substring(0, s[i].Length);
                    else s[i] = s[i].ToUpper();
            }
    return string.Join("", s);
}
Если мудрецы сочтут сей код кривым, буду благодарен за правки. Оставляю его здесь для всех, кто пребывает в поиске. Ключевые слова: C# Regex ToUpper верхний регистр, регулярные выражения верхний регистр. Пусть хоть кто-то сэкономит свое время )) Всем удачи!
 
  • Спасибо
Реакции: Dimionix и doc

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
боюсь это совсем не то, что ему нужно
Нашел снипет на форуме http://zennolab.com/discussion/threads/kazhdoe-predlozhenie-s-zaglavnoj-bukvy.19533/#post-126336
кое-как методом научного втыка адаптировал под свои нужды - и вот работает.
Код:
string str = project.Variables["BaseText"].Value;
{
    string[] s = Regex.Split(str, @"(?<=<p>)([а-я])");
    for (int i = 0; i < s.Length; i++)
            {
                    if (s[i].Length > 1)
                         s[i] = s[i].Substring(0, 0).ToUpper() + s[i].Substring(0, s[i].Length);
                    else s[i] = s[i].ToUpper();
            }
    return string.Join("", s);
}
Если мудрецы сочтут сей код кривым, буду благодарен за правки. Оставляю его здесь для всех, кто пребывает в поиске. Ключевые слова: C# Regex ToUpper верхний регистр, регулярные выражения верхний регистр. Пусть хоть кто-то сэкономит свое время )) Всем удачи!
мне нравится твоё решение)
Но хоть убей, я не могу понять, почему работает конструкция
Код:
s[I].Substring(0, s[I].Length), а не s[I].Substring(1, s[I].Length)
У меня есть проекты, где я обычно проверяю имена. Делаю 1ю букву заглавной, а остальные строчными. И я всегда использую что-то вроде
str[0].ToString().ToUpper() + str.Substring(1).ToLower();
И не могу понять, почему у тебя прокатывает с нулём
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я всё понял)

C#:
string str = project.Variables["BaseText"].Value;
{
    string[] s = Regex.Split(str, @"(?<=<p>)([а-я])");
    for (int i = 0; i < s.Length; i++)
    {
        if (s[i].Length == 1)
            s[i] = s[i].ToUpper();
    }
    return string.Join("", s);
}
 

Fantozzzio

Client
Регистрация
11.05.2015
Сообщения
52
Благодарностей
7
Баллы
8
Я всё понял)

C#:
string str = project.Variables["BaseText"].Value;
{
    string[] s = Regex.Split(str, @"(?<=<p>)([а-я])");
    for (int i = 0; i < s.Length; i++)
    {
        if (s[i].Length == 1)
            s[i] = s[i].ToUpper();
    }
    return string.Join("", s);
}
Спасибо! Заменил код снипета в проекте на этот:-)
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Желающих помочь нету?
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Не подскажите снипет для работы с ClaudFlare API? POST запросом не получается выполнить следующее.
А метода DELETE нету в запросах у зенки (
А так все просто все что после -H кладешь в заголовок с новой строки
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Вот по этой причине и нужен снипет C#
 

deopl

Client
Регистрация
06.12.2011
Сообщения
667
Благодарностей
126
Баллы
43
Подскажите копировать список в другой список
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
  • Спасибо
Реакции: deopl

dubpuq

Client
Регистрация
20.06.2012
Сообщения
71
Благодарностей
24
Баллы
18

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

Нужен код для подсчета различных элементов в переменной вида
Код:
0012301 123 123445 435 345 1355 12355 14144 ......
элементов может быть до 100 000 000, хотелось бы решение которое выполнит это как можно быстрее,найденное мной у меня не получается интегрировать .

Использование LINQ в зенно, как перевести решение с msdn.microsoft в C# зенно !? И какие referenses нужно указать для правильной работы.
Задача - посчитать количество различных элементов в массиве.

Оригинальный код прилагается.
Код:
using System.Linq;
...
var a = new[] { 11, 11, 23, 23, 23, 23, 23, 44, 88, 88 };
var g = a.GroupBy(i => i);
System.Diagnostics.Trace.WriteLine("count: " + g.Count());
foreach (var k in g)
    System.Diagnostics.Trace.WriteLine(k.Key + " (" + k.Count() + ")");


результат:

count: 4
11 (2)
23 (5)
44 (1)
88 (2)
ещё было бы неплохо сразу же отсортировать к примеру по убыванию- заранее спасибо !
Сори за путаницу в вопросе - мало спалось последние дни .
 
Последнее редактирование:

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Группируем, сортируем по убыванию

Кол-во различных элементов

using-и подключать не надо, System.Linq подключен по умолчанию.
Код:
var a = new[] { 11, 11, 23, 23, 23, 23, 23, 44, 88, 88 };
var g = a
   .GroupBy(i => i) // сгруппировали
   .Select(i => i.First()) // взяли первый элемент группы
   .OrderByDescending(i => i) // отсортировали по убыванию
   .ToList();

var count = g.Count;
 
  • Спасибо
Реакции: dubpuq

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
Добрый день.

Дано:
1. "Вася красный" в переменной №1
2. "Какой-то текст" в переменной №2
3. Регулярка, которой мы ищем в переменной №2 выражение из №1

Задача: Получить номер совпадения с переменной №1.

Может кто-нибудь подсказать?

Заранее благодарю.
 
Последнее редактирование:

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Что значит номер совпадения? Если по регулярке что либо находится, то это будет первое совпадение. Или что именно Вам нужно?
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
Что значит номер совпадения? Если по регулярке что либо находится, то это будет первое совпадение. Или что именно Вам нужно?
Если коротко - мне нужно узнать номер элемента в списке, но без списка и без перебора по 1 ( так долго получается).

Элементы имеют общие признаки. Регуляркой мы берем все подходящие элементы, и потом возвращаем номер соответствия для нужной переменной.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Если коротко - мне нужно узнать номер элемента в списке, но без списка и без перебора по 1 ( так долго получается).

Элементы имеют общие признаки. Регуляркой мы берем все подходящие элементы, и потом возвращаем номер соответствия для нужной переменной.
можно регуляркой брать текст от начала текста и до искомого. У полученного текста считать переносы. Так узнаем, в какой строке списка совпадение без перебора.
Странный вариант, но как узнать номер строки без перебора иначе я пока не знаю
 
  • Спасибо
Реакции: Konrod_m

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Если коротко - мне нужно узнать номер элемента в списке, но без списка и без перебора по 1 ( так долго получается).
Вы бы конкретный пример привели. А то так получается сферический конь в вакууме.
Проще бы было понять и найти решение.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113

dubpuq

Client
Регистрация
20.06.2012
Сообщения
71
Благодарностей
24
Баллы
18

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

Группируем, сортируем по убыванию

Кол-во различных элементов

using-и подключать не надо, System.Linq подключен по умолчанию.
Код:
var a = new[] { 11, 11, 23, 23, 23, 23, 23, 44, 88, 88 };
var g = a
   .GroupBy(i => i) // сгруппировали
   .Select(i => i.First()) // взяли первый элемент группы
   .OrderByDescending(i => i) // отсортировали по убыванию
   .ToList();

var count = g.Count;
Спасибище огромное,но как вернуть результат ?
 
Последнее редактирование:

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
можно регуляркой брать текст от начала текста и до искомого. У полученного текста считать переносы. Так узнаем, в какой строке списка совпадение без перебора.
Странный вариант, но как узнать номер строки без перебора иначе я пока не знаю
Спасибо за мысль. Это конечно не сниппет, но 5 секунд на 1 цикл экономит. Очень существенно, когда циклов много)
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
ПРимер.
Идем на страницу http://zennolab.com/discussion/members/
Надо узнать каким по счету идет, например, CSS.
Код:
// собрали все элементы через xpath, вытащили текст и сложили в список
var list = instance.ActiveTab.GetDocumentByAddress("0")
    .FindElementsByXPath("//a[contains(@class,'username')]")
    .Select(e => e.InnerText)
    .ToList();
   
var textToSearch = "CSS";

// находим первый элемент в списке, в котором присутсвует искомый текст.
// если не найдет, то null, берется первый элемент.
// как вариант SingleOrDefault - если элементов будет больше одного то вернет null
var elem = list.FirstOrDefault(e => e.Contains(textToSearch));

if(elem == null)
    return null;

var index = list.IndexOf(elem);
project.SendInfoToLog(index.ToString());


textToSearch = "dark";
elem = list.FirstOrDefault(e => e.Contains(textToSearch));

if(elem == null)
    return null;

index = list.IndexOf(elem);
project.SendInfoToLog(index.ToString());


Выносим повторяющийся код в owncode и юзаем где надо.



 
  • Спасибо
Реакции: sentinel

stanar

Client
Регистрация
19.12.2015
Сообщения
315
Благодарностей
157
Баллы
43
Может кому понадобится из новичков. Рестарт модема Huawei HG8245A
Код:
var login = "telecomadmin";
var password = "admintelecom";

instance.ActiveTab.Navigate("192.168.100.1");
System.Threading.Thread.Sleep(2500);
HtmlElement loginfield = instance.ActiveTab.FindElementByAttribute("input:text","id","txt_Username","text",0);
loginfield.SetAttribute("value",login);
HtmlElement passfield = instance.ActiveTab.FindElementByAttribute("input:password","id","txt_Password","text",0);
passfield.SetAttribute("value",password);
instance.ActiveTab.FindElementById("button").Click();


System.Threading.Thread.Sleep(1500);
HtmlElement tools = instance.ActiveTab.FindElementByAttribute("div","class","tabBtnCenter","regexp",10);
tools.Click();
System.Threading.Thread.Sleep(1500);

HtmlElement restartButton = instance.ActiveTab.FindElementByAttribute("input:button","id","btnReboot","text",0);
restartButton.Click();
System.Threading.Thread.Sleep(90000);
 
Последнее редактирование:
  • Спасибо
Реакции: sentinel

kuppyc

Client
Регистрация
13.06.2015
Сообщения
27
Благодарностей
1
Баллы
3
Подскажите пожалуйста снипет, который ищет в таблице совпадение из переменной, и если находит выдает номер строки
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Подскажите пожалуйста снипет, который ищет в таблице совпадение из переменной, и если находит выдает номер строки
http://zennolab.com/discussion/threads/poisk-po-spiskam-i-tablicam-cherez-c-makros.10734/
Пользуйтесь поиском по форуму. Уже тысячи раз этот вопрос поднимался.
 
  • Спасибо
Реакции: Osminogus

kuppyc

Client
Регистрация
13.06.2015
Сообщения
27
Благодарностей
1
Баллы
3

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Спасибо ) Только выдает ошибку
ZennoLab discussions - Error
You do not have permission to view this page or perform this action.
Код:
// берем регулярное выражение для парсинга из переменной
var parserRegexPattern = project.Variables["tableSearchRegex"].Value;
var parserRegex = new System.Text.RegularExpressions.Regex(parserRegexPattern);
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["SourceTable"];
// получаем таблицу, в которую будем класть
var destTable = project.Tables["OutputTable"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i=0; i < sourceTable.RowCount; i++)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // проверяем вторую ячейку регулярным выражением, если есть совпадение кладем результат во вторую таблицу
        if (parserRegex.IsMatch(cells[1]))
            destTable.AddRow(cells);
    }
}
 

nicos77777

Client
Регистрация
04.04.2013
Сообщения
333
Благодарностей
18
Баллы
18
Код:
string domain = new Uri(instance.ActiveTab.URL).Host;
int body_width = instance.ActiveTab.MainBody.Width;
int body_height = instance.ActiveTab.MainBody.Height;
var links = instance.ActiveTab.FindElementsByAttribute("a", "href", Regex.Escape(domain)+".{3,}", "regexp").Elements
.Where(e=>(e.Width > 0 && e.Height > 0 && Math.Abs(int.Parse(e.GetAttribute("leftinbrowser"))) < body_width && Math.Abs(int.Parse(e.GetAttribute("topinbrowser"))) < body_height)).Distinct().Shuffle().ToList();
Этот код поидее должен брать видимые ссылки. Подскажите как полученные ссылки записать в список?

Или подскажите пожалуйста снипет получения ссылок внутрених страниц(чтобы домен всегда был прописан) как здесь http://pr-cy.ru/link_extractor/
 
Последнее редактирование:

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