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

  • Автор темы Автор темы CSS
  • Дата начала Дата начала
Так отоработал, он нет ошибки если нет совпадения, откуда я паршу их надо точно искать, ошибка нужна, там много чего может быть лишнего, то что не нужно. Вот например smotrim.ru/video/2356856 внизу два ролика которые к сериям не относятся и на ютубе так же и на домашнем. Ошибка нужна

возможно так будет лучше. Логика такая: есть коллекция регулярок, проверяем переменную с именем "title" до тех пор, пока не найдем нужную регулярку. Если ничего не найдено, то ошибка

C#:
Развернуть Свернуть Копировать
string text = string.Empty, result=string.Empty;
bool sovp = false;

//заполняешь свои регулярки (все). Если в регулярке встречаются кавычки, то их надо дублировать ""
List<string> kolRegul = new List<string>()
{
    @"\d",
    @"12""вася",
    @"вася"
};


//title - имя переменной, в которой будем искать совпадение
//series - имя переменной, куда вставляем результат, если он найден с помощью регулярки

text = project.ExecuteMacro(project.Variables["title"].Value);

for(int i=0;i<kolRegul.Count;i++)
{
    result = Regex.Match(text, kolRegul[i]).Value;
    if(result.Length > 0)
    {
        project.Variables["series"].Value = result;
        sovp = true;
        break;
    }
}

if(!sovp) throw new Exception("не нашли совпадение");
 
  • Спасибо
Реакции: Roman48
возможно так будет лучше. Логика такая: есть коллекция регулярок, проверяем переменную с именем "title" до тех пор, пока не найдем нужную регулярку. Если ничего не найдено, то ошибка

C#:
Развернуть Свернуть Копировать
string text = string.Empty, result=string.Empty;
bool sovp = false;

//заполняешь свои регулярки (все). Если в регулярке встречаются кавычки, то их надо дублировать ""
List<string> kolRegul = new List<string>()
{
    @"\d",
    @"12""вася",
    @"вася"
};


//title - имя переменной, в которой будем искать совпадение
//series - имя переменной, куда вставляем результат, если он найден с помощью регулярки

text = project.ExecuteMacro(project.Variables["title"].Value);

for(int i=0;i<kolRegul.Count;i++)
{
    result = Regex.Match(text, kolRegul[i]).Value;
    if(result.Length > 0)
    {
        project.Variables["series"].Value = result;
        sovp = true;
        break;
    }
}

if(!sovp) throw new Exception("не нашли совпадение");
Спасибо большее, то что надо
 
Вроде то что ищешь
C#:
Развернуть Свернуть Копировать
https://zennolab.com/discussion/threads/poisk-zamena-v-spiske.18675/
/* ЗАМЕНА ЭЛЕМЕНТОВ В СПИСКЕ ПО РЕГУЛЯРНОМУ ВЫРАЖЕНИЮ */

// Добавить в OwnCode (Общий код) в конце:
/* namespace ZennoHelpers
{
    public class Locker
    {
        public static object CustomListSyncer = new object();
    }
} */

// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];

// Регулярное выражение по поиску чисел
var parserRegex = new Regex("\\d{1,2}");

lock(ZennoHelpers.Locker.CustomListSyncer)
{
    // Пробегаемся по списку
    for(int i=0; i < sourceList.Count; i++)
    {
        // Если элемент соответствует регулярному выражению
        if (parserRegex.IsMatch(sourceList[i]))
        {
            // Заменяем текущий элемент на REPLACED
            sourceList[i]= "REPLACED";
        }
    }
}
спасибо, но опять же, немного не то, мне нужно один кубиком, без привязки файла к списку.
 
Друзья, подскажите пожалуйста, может уже есть в доступе сниппет.
Есть файл, мне нужно в нём регуляркой найти текст и заменить на свой. Заранее премного благодарен за помощь.
Код:
Развернуть Свернуть Копировать
string searchStr = "75";
string filePath = project.Directory + "\\" + "text.txt";

string[] lines = System.IO.File.ReadAllLines(filePath);

    foreach (string line in lines)
    {
        if(line.Contains(searchStr)){
            return String.Format("{0} найдено в файле", searchStr);
        }
    }
    return String.Format("{0} НЕ найдено в файле!", searchStr);
 
  • Спасибо
Реакции: Zheka84
Код:
Развернуть Свернуть Копировать
string searchStr = "75";
string filePath = project.Directory + "\\" + "text.txt";

string[] lines = System.IO.File.ReadAllLines(filePath);

    foreach (string line in lines)
    {
        if(line.Contains(searchStr)){
            return String.Format("{0} найдено в файле", searchStr);
        }
    }
    return String.Format("{0} НЕ найдено в файле!", searchStr);
спасибо, а как найденный текст заменить на свой? :)
 
Друзья, подскажите пожалуйста, может уже есть в доступе сниппет.
Есть файл, мне нужно в нём регуляркой найти текст и заменить на свой. Заранее премного благодарен за помощь.

C#:
Развернуть Свернуть Копировать
string path = @"C:\Users\Sleep\Desktop\combo\1.txt";
File.WriteAllText(path, Regex.Replace(File.ReadAllText(path), @"регулярка", "текст замены"));
 
  • Спасибо
Реакции: Zheka84
C#:
Развернуть Свернуть Копировать
string path = @"C:\Users\Sleep\Desktop\combo\1.txt";
File.WriteAllText(path, Regex.Replace(File.ReadAllText(path), @"регулярка", "текст замены"));
отлично, то что нужно, спасибо
 
  • Спасибо
Реакции: Ilshakin
Добрый день.
Может кто-нибудь помочь со снипетом поиска по таблице. В С# не смыслю, пробовал править найденные на форуме снипеты, но не получается ничего.

Дано:
Переменная tag - содержит тег, по которому ищем
Таблица frazi_gruppy - из 2-х столбцов, Фраза и Группа
Переменная nazvanie_gruppy - содержит название группы

Есть таблица (Google Sheets), состоящая из 2-х столбцов. Первый содержит фразу, второй пустой (пока пустой).
Нужно найти, в первом столбце таблицы frazi_gruppy все фразы, которые содержат значение из переменной tag.
И добавить для таких фраз во втором столбце значение из переменной nazvanie_gruppy. Но их нужно не просто добавить перезаписав значения в ячейке, а добавить к имеющемуся значению в ячейке через разделитель "/".
 
Здравствуйте. На форуме нашел сниппет который производит замену в таблице.
Подскажите пожалуйста, как правильно произвести поиск и замену Enter на пробел?
Вот сам код:

var table_akk=project.Tables["table tek xlsx"];

lock(SyncObjects.TableSyncer)
{
for(int i=0; i < table_akk.RowCount; i++)
{
var cells = table_akk.GetRow(i).ToArray();
for(int j=0; j < table_akk.ColCount; j++)
{

if(cells[j].Contains("что ищем"))
{
table_akk.SetCell(j,i,cells[j].Replace("что ищем","на что меняем"));
}
}

}
}

Как в нем правильно указать {-String.Enter-}?
 
Вот этот код решил мою задачу:
C#:
Развернуть Свернуть Копировать
var table_akk=project.Tables["table tek xlsx"];

lock(SyncObjects.TableSyncer)
{
        for(int i=0; i < table_akk.RowCount; i++)
        {
            var cells = table_akk.GetRow(i).ToArray();
            for(int j=0; j < table_akk.ColCount; j++)
            {
              
                if(cells[j].Contains("\n"))
                {
                    table_akk.SetCell(j,i,cells[j].Replace("\n"," "));
                }
            }
                      
        }
}
 
Парни есть снипет для взятия строки из списка с большим количеством символов? Сейчас приходиться костылить, через доп список, что не очень ок. Поиском искал на форуме, то ли запрос не верный, то ли задача специфическая...
 
C#:
Развернуть Свернуть Копировать
return project.Lists["твой лист"].OrderByDescending(x => x.Length).FirstOrDefault();
Помог мне, быстро, оперативно, теперь я знаю и умею больше чем раньше.
 
  • Спасибо
Реакции: Ilshakin
Как обработать переменную, чтобы ее можно было использовать в пути для сохранения файла?
Например если в переменной есть двоеточие то с таким именем файл не сохранится.

Пример. Мне нужно сохранить файл, в экшене прописал путь:

F:\Контент\dating\en\{-Variable.Test-}.txt

Переменная Test = Привет: как дела?
в таком случае будет ошибка:

Тип Время Сообщение
12:33:03 Добавление строки в файл в несколько попыток Данный формат пути не поддерживается.

Можно ли одним сниппетом обработаь переменную, которая позволит использовать себя как имя файла? автоматом убрать все символы, которые будут мешать сохранению.
 
Как обработать переменную, чтобы ее можно было использовать в пути для сохранения файла?
Например если в переменной есть двоеточие то с таким именем файл не сохранится.

Пример. Мне нужно сохранить файл, в экшене прописал путь:

F:\Контент\dating\en\{-Variable.Test-}.txt

Переменная Test = Привет: как дела?
в таком случае будет ошибка:


Тип Время Сообщение
12:33:03 Добавление строки в файл в несколько попыток Данный формат пути не поддерживается.

Можно ли одним сниппетом обработаь переменную, которая позволит использовать себя как имя файла? автоматом убрать все символы, которые будут мешать сохранению.
Здесь тоже отмечусь)
Примерно так:
C#:
Развернуть Свернуть Копировать
Regex pattern = new Regex("[;,\t\r\"“”«»'.:/\\()<>≤≥+#°%|&]");
return pattern.Replace(project.Variables["test"].Value, string.Empty) ;
Остальные нежелательные символы добавить в паттерн.
 
  • Спасибо
Реакции: Ilshakin
Как обработать переменную, чтобы ее можно было использовать в пути для сохранения файла?
Например если в переменной есть двоеточие то с таким именем файл не сохранится.

Пример. Мне нужно сохранить файл, в экшене прописал путь:

F:\Контент\dating\en\{-Variable.Test-}.txt

Переменная Test = Привет: как дела?
в таком случае будет ошибка:


Тип Время Сообщение
12:33:03 Добавление строки в файл в несколько попыток Данный формат пути не поддерживается.

Можно ли одним сниппетом обработаь переменную, которая позволит использовать себя как имя файла? автоматом убрать все символы, которые будут мешать сохранению.

C#:
Развернуть Свернуть Копировать
return Regex.Replace(project.Variables["переменная для обработки"].Value, @"[^\w\@-]", "");
 
  • Спасибо
Реакции: udder
Ну по хорошему надо без регулярок вообще. И для этого в с# есть специальный метод
Path.GetInvalidFileNameChars();
 
Как обработать переменную, чтобы ее можно было использовать в пути для сохранения файла?
Например если в переменной есть двоеточие то с таким именем файл не сохранится.

Пример. Мне нужно сохранить файл, в экшене прописал путь:

F:\Контент\dating\en\{-Variable.Test-}.txt

Переменная Test = Привет: как дела?
в таком случае будет ошибка:


Тип Время Сообщение
12:33:03 Добавление строки в файл в несколько попыток Данный формат пути не поддерживается.

Можно ли одним сниппетом обработаь переменную, которая позволит использовать себя как имя файла? автоматом убрать все символы, которые будут мешать сохранению.
Код:
Развернуть Свернуть Копировать
string filename = project.Variables["Переменная с именем файла"].Value;
string invalidChar = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
foreach (char c in invalidChar)
{
    project.Variables["Переменная с именем файла"].Value = filename.Replace(c.ToString(), "");
}

// из имени файла "Привет: Как дела?\/" - сделает "Привет Как дела"
 
  • Спасибо
Реакции: udder
Доброго дня!
Подскажите почему так и что делать
Перемещаю и переименовываю файлы и папку, иногда папка с таким именем уже существует

Move(String, String) //работает, но если папка уже существует вылазит исключение
Перемещает заданный файл в новое местоположение и разрешает переименование файла.
===
Move(String, String, Boolean) //не работает, ошибка компиляции метод не содержит третий аргумент
Перемещает указанный файл в новое расположение, предоставляя параметры для указания нового имени файла и перезаписи конечного файла, если он уже существует.
 
Добрый день!
Скиньте, если есть у кого, скрипт авторизации в админке joomla
 
Всем привет. Есть сниппет который ищет значение переменной в столбце B таблицы и если находит то обновляет данные в столбце BH. Таблица содержит 20-50К строк. И выполнять поиск построчно в цикле отнимает много времени.
Потребность состоит в том чтобы, поиск производить по регулярному выражению за один раз и во всех найденных строках обновить ячейку BH. Регулярка будет лежать в переменной и иметь вид типа (значение1|значение2|значение3|значение4|значение5| и т.д. до нескольких тысяч значений)
Вот пример сниппета найденного на просторах форума:

C#:
Развернуть Свернуть Копировать
for(int i=0; i<project.Tables["Table"].RowCount; i++){

    if ( project.Tables["Table"].GetCell("B",i) == project.Variables["id_objekt"].Value ){
        project.Tables["Table"].SetCell("BH",i,project.Variables["TimeNew_Proverka"].Value);
    } 
}
Подскажите пожалуйста, возможно ли совершить задуманное и как прописать регулярку в сниппет.
 
Всем привет! Помогите, пожалуйста с кодом. С меня пивас (ну и рыбка). Совсем не разбираюсь, а решать вопрос надо.. Итак.

Дано: разные переменные:
  • method = “aliexpress.solution.order.fulfill”
  • app_key = “12345678”
  • session = “test”
  • timestamp = “2016-01-01 12:00:00”
  • format = “json”
  • v = “2.0”
  • sign_method = “md5”
Мне нужно получить ключ, т.е. переменную, которая, как я понял, образуется путем:

1) сортировки этих строк по алфавиту
2) объединения данных строк в одну строку
3) хеширование MD5

Мне дан вот такой C# код, его нужно адаптировать в Zennoposter, прописать переменные и т.д.:

C#:
Развернуть Свернуть Копировать
public static string SignTopRequest(IDictionary<string, string> parameters, string secret, string signMethod)
{
    //Step 1: Sort the dictionary based on the alphabetical order of Key.
    IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parameters, StringComparer.Ordinal);
    IEnumerator<KeyValuePair<string, string>> dem = sortedParams.GetEnumerator();

    //Step 2: Splice all sorted parameter names and values together.
    StringBuilder query = new StringBuilder();
    if (Constants.SIGN_METHOD_MD5.Equals(signMethod))
    {
        query.Append(secret);
    }
    while (dem.MoveNext())
    {
        string key = dem.Current.Key;
        string value = dem.Current.Value;
        if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
        {
            query.Append(key).Append(value);
        }
    }

    //Step 3: Use the MD5 or HMAC_MD5 algorithm to encrypt the spliced character string.
    byte[] bytes;
    if (Constants.SIGN_METHOD_HMAC.Equals(signMethod))
    {
        HMACMD5 hmac = new HMACMD5(Encoding.UTF8.GetBytes(secret));
        bytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(query.ToString()));
    }
    else
    {
        query.Append(secret);
        MD5 md5 = MD5.Create();
        bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query.ToString()));
    }

    //Step 4: Convert binary characters into capitalized hexadecimal characters.
    StringBuilder result = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)
    {
        result.Append(bytes[i].ToString("X2"));
    }

    return result.ToString();
}


И да, вот такая ещё информация дана, если нужна:

  • Sort all request parameters of an API (including public parameters and service parameters, but excluding the sign parameter and parameters of the byte[] type) based on the sequence of their parameter names in the ASCII table. For example, parameters foo:1, bar:2, foo_bar:3, and foobar:4 are sorted as follows: bar:2, foo:1, foo_bar:3, foobar:4.
  • Splice the sorted parameter names and values together to obtain a character string. For example, the character string obtained in the preceding example is bar2foo1foo_bar3foobar4.
  • Encode the spliced character string based on UTF-8 encoding and use a signature algorithm to produce a digest for the encoded byte stream. If the MD5 algorithm is used, add the secret value of the corresponding application before and after the spliced character string, and then produce a digest, for example, md5(secret+bar2foo1foo_bar3foobar4+secret). If the HMAC_MD5 algorithm is used, initialize the digest algorithm based on the secret value of the corresponding application, and then produce a digest, for example, hmac_md5(bar2foo1foo_bar3foobar4).
  • Denote the byte stream obtained after the digest in hexadecimal, for example, hex(“helloworld”.getBytes(“utf-8”)) = “68656C6C6F776F726C64”.

Надеюсь на помощь!
 
Всем привет! Помогите, пожалуйста с кодом. С меня пивас (ну и рыбка). Совсем не разбираюсь, а решать вопрос надо.. Итак.

Дано: разные переменные:
  • method = “aliexpress.solution.order.fulfill”
  • app_key = “12345678”
  • session = “test”
  • timestamp = “2016-01-01 12:00:00”
  • format = “json”
  • v = “2.0”
  • sign_method = “md5”
Мне нужно получить ключ, т.е. переменную, которая, как я понял, образуется путем:

1) сортировки этих строк по алфавиту
2) объединения данных строк в одну строку
3) хеширование MD5

Мне дан вот такой C# код, его нужно адаптировать в Zennoposter, прописать переменные и т.д.:

C#:
Развернуть Свернуть Копировать
public static string SignTopRequest(IDictionary<string, string> parameters, string secret, string signMethod)
{
    //Step 1: Sort the dictionary based on the alphabetical order of Key.
    IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parameters, StringComparer.Ordinal);
    IEnumerator<KeyValuePair<string, string>> dem = sortedParams.GetEnumerator();

    //Step 2: Splice all sorted parameter names and values together.
    StringBuilder query = new StringBuilder();
    if (Constants.SIGN_METHOD_MD5.Equals(signMethod))
    {
        query.Append(secret);
    }
    while (dem.MoveNext())
    {
        string key = dem.Current.Key;
        string value = dem.Current.Value;
        if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
        {
            query.Append(key).Append(value);
        }
    }

    //Step 3: Use the MD5 or HMAC_MD5 algorithm to encrypt the spliced character string.
    byte[] bytes;
    if (Constants.SIGN_METHOD_HMAC.Equals(signMethod))
    {
        HMACMD5 hmac = new HMACMD5(Encoding.UTF8.GetBytes(secret));
        bytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(query.ToString()));
    }
    else
    {
        query.Append(secret);
        MD5 md5 = MD5.Create();
        bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query.ToString()));
    }

    //Step 4: Convert binary characters into capitalized hexadecimal characters.
    StringBuilder result = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)
    {
        result.Append(bytes[i].ToString("X2"));
    }

    return result.ToString();
}


И да, вот такая ещё информация дана, если нужна:



Надеюсь на помощь!
Вопрос отпал, решил! Как удалить сообщение - не знаю, поэтому написал ниже.
 
Всем привет. Есть сниппет который ищет значение переменной в столбце B таблицы и если находит то обновляет данные в столбце BH. Таблица содержит 20-50К строк. И выполнять поиск построчно в цикле отнимает много времени.
Потребность состоит в том чтобы, поиск производить по регулярному выражению за один раз и во всех найденных строках обновить ячейку BH. Регулярка будет лежать в переменной и иметь вид типа (значение1|значение2|значение3|значение4|значение5| и т.д. до нескольких тысяч значений)
Вот пример сниппета найденного на просторах форума:

C#:
Развернуть Свернуть Копировать
for(int i=0; i<project.Tables["Table"].RowCount; i++){

    if ( project.Tables["Table"].GetCell("B",i) == project.Variables["id_objekt"].Value ){
        project.Tables["Table"].SetCell("BH",i,project.Variables["TimeNew_Proverka"].Value);
    } 
}
Подскажите пожалуйста, возможно ли совершить задуманное и как прописать регулярку в сниппет.
Вопрос решен.
 
В общем, любой эл. как base64, только посредством js в C# коде. Ниже код, но что-то я не то делаю, что он совсем не работает :ca: Получается только с getElementsByClassName, не получается тоже самое сделать по getElementById и по Xpath. В принципе, подходит и то, и другое. за снипет благодарочка :ay:

Это не работает :dm::
Развернуть Свернуть Копировать
var btp = instance.ActiveTab.MainDocument.EvaluateScript("return document.getElementById('block_tp').toDataURL()");
btp  = c.Replace("data:image/png;base64,", "");
return btp;

Уже не актуально.
 
Последнее редактирование:
Подскажите снипет, который unixtime (1640245570) переводит в такой формат:
Thu+Dec+23+2021+07:46:10+GMT+0000
Спасибо!
 
Подскажите снипет, который unixtime (1640245570) переводит в такой формат:
Thu+Dec+23+2021+07:46:10+GMT+0000
Спасибо!
C#:
Развернуть Свернуть Копировать
var date = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(1640245570);
var culture = new System.Globalization.CultureInfo("en-US");
return date.ToString(@"ddd+MMM+dd+yyyy+HH:mm:ss+G\MT+0000", culture);

Часть +GMT+0000 в конце статична. Т.е. она никак не высчитывается, а просто дописывается в конце.
 
  • Спасибо
Реакции: Markoonij
C#:
Развернуть Свернуть Копировать
var date = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(1640245570);
var culture = new System.Globalization.CultureInfo("en-US");
return date.ToString(@"ddd+MMM+dd+yyyy+HH:mm:ss+G\MT+0000", culture);

Часть +GMT+0000 в конце статична. Т.е. она никак не высчитывается, а просто дописывается в конце.
Благодарочка!!!!!!! Как поправить снипет, если значение 1640245570 лежит в переменной unixtime?
 
Благодарочка!!!!!!! Как поправить снипет, если значение 1640245570 лежит в переменной unixtime?
C#:
Развернуть Свернуть Копировать
int unixtime = Convert.ToInt32(project.Variables["unixtime"].Value);
var date = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(unixtime);
var culture = new System.Globalization.CultureInfo("en-US");
return date.ToString(@"ddd+MMM+dd+yyyy+HH:mm:ss+G\MT+0000", culture);

Время должно быть в переменной проекта unixtime
 
  • Спасибо
Реакции: GreenWay и Markoonij

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