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

  • Автор темы Автор темы CSS
  • Дата начала Дата начала
Если бы очередность действий была другая, то и результат был бы со знаком +. Сначала нужно было найти, а потом написать и ссылочку прикрепить! Я бы тебе лайк поставил и сам бы не нервничал :) А так, нервы шалят уже, кидаюсь на людей )
Ссылка в закладках на компе. Я сейчас с планшета, поэтому и не помню точно как называлась.
 
Ссылка в закладках на компе. Я сейчас с планшета, поэтому и не помню точно как называлась.
Не уверен, что в данном случае подойдет конструкция project.Variables["Имяпеременной"].Value = project.Variables["Имяпеременной"].Value.Replace("чтоменяем","начтоменяем");
Насколько я понимаю, тут нужно каким-то боком заюзать ToUpper и применить к совпадению, найденному регуляркой.
 
Нашел снипет на форуме 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
боюсь это совсем не то, что ему нужно
Нашел снипет на форуме 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();
И не могу понять, почему у тебя прокатывает с нулём
 
Я всё понял)

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);
}
 
Я всё понял)

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);
}
Спасибо! Заменил код снипета в проекте на этот:)
 
Желающих помочь нету?
 
Не подскажите снипет для работы с ClaudFlare API? POST запросом не получается выполнить следующее.
А метода DELETE нету в запросах у зенки (
А так все просто все что после -H кладешь в заголовок с новой строки
 
Вот по этой причине и нужен снипет C#
 
Подскажите копировать список в другой список
 
Нужен код для подсчета различных элементов в переменной вида
Код:
Развернуть Свернуть Копировать
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)

ещё было бы неплохо сразу же отсортировать к примеру по убыванию- заранее спасибо !
Сори за путаницу в вопросе - мало спалось последние дни .
 
Последнее редактирование:
Группируем, сортируем по убыванию
0fd99410c5dc4b2f8ab74dcc341dd9e5.png

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

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
Добрый день.

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

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

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

Заранее благодарю.
 
Последнее редактирование:
Что значит номер совпадения? Если по регулярке что либо находится, то это будет первое совпадение. Или что именно Вам нужно?
 
Что значит номер совпадения? Если по регулярке что либо находится, то это будет первое совпадение. Или что именно Вам нужно?

Если коротко - мне нужно узнать номер элемента в списке, но без списка и без перебора по 1 ( так долго получается).

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

Элементы имеют общие признаки. Регуляркой мы берем все подходящие элементы, и потом возвращаем номер соответствия для нужной переменной.
можно регуляркой брать текст от начала текста и до искомого. У полученного текста считать переносы. Так узнаем, в какой строке списка совпадение без перебора.
Странный вариант, но как узнать номер строки без перебора иначе я пока не знаю
 
  • Спасибо
Реакции: Konrod_m
Если коротко - мне нужно узнать номер элемента в списке, но без списка и без перебора по 1 ( так долго получается).
Вы бы конкретный пример привели. А то так получается сферический конь в вакууме.
Проще бы было понять и найти решение.
 
Группируем, сортируем по убыванию
0fd99410c5dc4b2f8ab74dcc341dd9e5.png

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

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;
Спасибище огромное,но как вернуть результат ?
 
Последнее редактирование:
можно регуляркой брать текст от начала текста и до искомого. У полученного текста считать переносы. Так узнаем, в какой строке списка совпадение без перебора.
Странный вариант, но как узнать номер строки без перебора иначе я пока не знаю

Спасибо за мысль. Это конечно не сниппет, но 5 секунд на 1 цикл экономит. Очень существенно, когда циклов много)
 
ПРимер.
Идем на страницу 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());

759cd99e0b5a4d9298459ba71854fb1b.png


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

557e5e886f824dfdb8e1c752ede07d06.png


56874c1298ba49188d93d978ba462f15.png
 
  • Спасибо
Реакции: sentinel
Может кому понадобится из новичков. Рестарт модема 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
Подскажите пожалуйста снипет, который ищет в таблице совпадение из переменной, и если находит выдает номер строки
 
Подскажите пожалуйста снипет, который ищет в таблице совпадение из переменной, и если находит выдает номер строки
http://zennolab.com/discussion/threads/poisk-po-spiskam-i-tablicam-cherez-c-makros.10734/
Пользуйтесь поиском по форуму. Уже тысячи раз этот вопрос поднимался.
 
  • Спасибо
Реакции: Osminogus
Спасибо ) Только выдает ошибку
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);
    }
}
 
Код:
Развернуть Свернуть Копировать
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/
 
Последнее редактирование:

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