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

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Знатоки! Подскажите такую штуку:
Есть снипет:
Код:
double a = double.Parse(project.Variables["num"].Value);//число 1
double b = double.Parse(project.Variables["percent"].Value);//число 2
double result = a+(a/100*b);//вычисление
return System.Math.Round(result,Convert.ToInt32(project.Variables["dot"].Value));//приводим к нужному количеству знаков после точки с округлением 'dot'
производит вычисление и округляет с указанным числом знаков после запятой.
Как округлить к большему?
И положить ответ в переменную проекта без return чтоб продолжить кодить
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
389
Баллы
63
Знатоки! Подскажите такую штуку:
Есть снипет:
Код:
double a = double.Parse(project.Variables["num"].Value);//число 1
double b = double.Parse(project.Variables["percent"].Value);//число 2
double result = a+(a/100*b);//вычисление
return System.Math.Round(result,Convert.ToInt32(project.Variables["dot"].Value));//приводим к нужному количеству знаков после точки с округлением 'dot'
производит вычисление и округляет с указанным числом знаков после запятой.
Как округлить к большему?
И положить ответ в переменную проекта без return чтоб продолжить кодить
Код:
double a = double.Parse(project.Variables["num"].Value);//число 1
double b = double.Parse(project.Variables["percent"].Value);//число 2
double result = a+(a/100*b);//вычисление
project.Variables["tvoya_peremennaya"].Value = System.Math.Ceiling(result);//создай и обзови свою переменную в проекте
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Код:
double a = double.Parse(project.Variables["num"].Value);//число 1
double b = double.Parse(project.Variables["percent"].Value);//число 2
double result = a+(a/100*b);//вычисление
project.Variables["tvoya_peremennaya"].Value = System.Math.Ceiling(result);//создай и обзови свою переменную в проекте
Ошибка: "Неявное преобразование типа "double" в "string" невозможно.
И отсутствует количество символов после точки
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
389
Баллы
63
Ошибка: "Неявное преобразование типа "double" в "string" невозможно.
И отсутствует количество символов после точки
извиняй набросал,но не затестил
Код:
double a = double.Parse(project.Variables["num"].Value);//число 1
double b = double.Parse(project.Variables["percent"].Value);//число 2
double result = a+(a/100*b);//вычисление
project.Variables["tvoya_peremennaya"].Value = Convert.ToString(System.Math.Ceiling(result));
 

SVRyzhov

Client
Регистрация
17.05.2017
Сообщения
47
Благодарностей
5
Баллы
8
Уважаемые знатоки!
Хочу получить в таблицу параметры загруженных в зенку проектов.
С грехом пополам на копипастистил следующее (пример кода, конкретные поля для взятия могут быть изменены)
Код:
var tasksList = new List<string>(ZennoPoster.TasksList);
var tab = project.Tables["TestTB"];
for (int i=0; i<tasksList.Count; i++) {
        var taskExSetPriority = Regex.Match(tasksList[i], @"(?<=Priority>)\d+(?=</Priority>)").Value;
        var taskExSetStatus = Regex.Match(tasksList[i], @"(?<=Status>)\d+(?=</Status>)").Value;

    tab.AddRow(new []{taskExSetPriority,taskExSetStatus});
    }
Проблема в том что цифровые значения берутся, а текстовые нет.
Внимание вопрос!
1. Что нужно изменить чтоб текстовые данные тоже брались?
2. Может это вообще путь не верный и можно как-то все сделать проще, на пример все настройки закинуть в переменную и распарсить стандартным кубиком "json/xml"?
 

SVRyzhov

Client
Регистрация
17.05.2017
Сообщения
47
Благодарностей
5
Баллы
8
Уважаемые знатоки!
Хочу получить в таблицу параметры загруженных в зенку проектов.
С грехом пополам накопипастистил следующее (пример кода, конкретные поля для взятия могут быть изменены)
Код:
var tasksList = new List<string>(ZennoPoster.TasksList);
var tab = project.Tables["TestTB"];
for (int i=0; i<tasksList.Count; i++) {
        var taskExSetPriority = Regex.Match(tasksList[i], @"(?<=Priority>)\d+(?=</Priority>)").Value;
        var taskExSetStatus = Regex.Match(tasksList[i], @"(?<=Status>)\d+(?=</Status>)").Value;

    tab.AddRow(new []{taskExSetPriority,taskExSetStatus});
    }
Проблема в том что цифровые значения берутся, а текстовые нет.
Внимание вопрос!
1. Что нужно изменить чтоб текстовые данные тоже брались?
2. Может это вообще путь не верный и можно как-то все сделать проще, на пример все настройки закинуть в переменную и распарсить стандартным кубиком "json/xml"?
Вопрос частично снят. Нужно вместо \d+ поставить .*
А второй вопрос остался
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
извиняй набросал,но не затестил
Код:
double a = double.Parse(project.Variables["num"].Value);//число 1
double b = double.Parse(project.Variables["percent"].Value);//число 2
double result = a+(a/100*b);//вычисление
project.Variables["tvoya_peremennaya"].Value = Convert.ToString(System.Math.Ceiling(result));
Благодарствую Sanekk, код робит, bat в ентом методе некуда вставить ограничение по количеству символов после точки, а в данном случае это важно, в ответ приходит целое число, а надо 0.005/0.1965=0.0255
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
в ентом методе некуда вставить ограничение по количеству символов после точки, а в данном случае это важно, в ответ приходит целое число, а надо 0.005/0.1965=0.0255
C#:
double a = double.Parse(project.Variables["num"].Value); // число 1
double b = double.Parse(project.Variables["percent"].Value); // число 2
double c = double.Parse(project.Variables["dot"].Value); // количество знаков после запятой
double result = a + (a / 100 * b); // вычисление
double factor = Math.Pow(10, c);
project.Variables["result"].Value = Convert.ToString(Math.Ceiling(result * factor) / factor);
 

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Dimionix спасибо! Работает как надо.
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
389
Баллы
63
Благодарствую Sanekk, код робит, bat в ентом методе некуда вставить ограничение по количеству символов после точки, а в данном случае это важно, в ответ приходит целое число, а надо 0.005/0.1965=0.0255
я не допонял вопрос наверное,думал что цель округлить до целого числа
Dimionix рулит;-)
 

proffman

Client
Регистрация
24.01.2013
Сообщения
547
Благодарностей
51
Баллы
28
Нужен снипет сравнения таблиц. В первой таблице заношу новую информацию, после чего, берутся ячейки столбца B и прогоняются по второй таблице. Если во второй таблице в столбце B нет копии ячейки, копируем целую строку Excel в третью таблицу. Если же во второй таблице в столбце B нашли копию ячейки, пропускаем.

Желательно, чтобы перебор работал шустро и в один поток. Строк может быть более 10к. ))
 
Последнее редактирование:

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Нужно переименовать более 100 000 файлов в имена вида XXX.YYYYYY
где ХХХ - генерируется
Код:
//Язык генерации (Eng, Lat или Jap)
string lang = "Eng";
//Количество слогов
Random rnd = new Random();
int sylCount = rnd.Next(2, 3);
//Возвращаем сгенерированное слово
return project.Profile.RegenerateLogin(String.Fo
YYYY - берется из списка.
Через кубики это делается очень долго долго (более 12 часов).
Возможно ли это сделать за время в +-5-10 минут?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 641
Баллы
113
Нужно переименовать более 100 000 файлов в имена вида XXX.YYYYYY
где ХХХ - генерируется
Код:
//Язык генерации (Eng, Lat или Jap)
string lang = "Eng";
//Количество слогов
Random rnd = new Random();
int sylCount = rnd.Next(2, 3);
//Возвращаем сгенерированное слово
return project.Profile.RegenerateLogin(String.Fo
YYYY - берется из списка.
Через кубики это делается очень долго долго (более 12 часов).
Возможно ли это сделать за время в +-5-10 минут?
возможно. нужно запустить кубики в зенно
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18

bookray

Client
Регистрация
14.07.2015
Сообщения
10
Благодарностей
2
Баллы
3
Всё еще нахожусь в поисках решения сниппета для перевода docx в html. С соблюдением заголовков, списков и абзацев.
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
А подскажите снипет, который ищет на странице например поле ввода имени и вносит туда значение переменой.
 

Мирон

Client
Регистрация
15.10.2015
Сообщения
29
Благодарностей
8
Баллы
3
Нужно переименовать более 100 000 файлов в имена вида XXX.YYYYYY
где ХХХ - генерируется
Код:
//Язык генерации (Eng, Lat или Jap)
string lang = "Eng";
//Количество слогов
Random rnd = new Random();
int sylCount = rnd.Next(2, 3);
//Возвращаем сгенерированное слово
return project.Profile.RegenerateLogin(String.Fo
YYYY - берется из списка.
Через кубики это делается очень долго долго (более 12 часов).
Возможно ли это сделать за время в +-5-10 минут?
Путь к файлам, YYYY - из списка рандомно или по очереди, XXX - как именно генерируется? больше информации немного.
Переименовывать можете просто кодом:
Код:
System.IO.File.Move("Старый путь к файлу", "Путь с новым названием файла");
 

goodlucker11

Client
Регистрация
12.05.2014
Сообщения
74
Благодарностей
28
Баллы
18
Всем привет!
Ситуация такая. Есть прокси вида: http://888.888.888.888:8888
Есть список проксей в том же формате. Как найти и взять из списка (с удалением) прокси из той же подсети (http://888.888.)

Я пока не знаю, как взять из http://888.888.888.888:8888 первые 14 символов?
А потом по http://888.888. найти строку с прокси из той же подсети? И удалить ее из списка.

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

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Путь к файлам, YYYY - из списка рандомно или по очереди, XXX - как именно генерируется? больше информации немного.
Переименовывать можете просто кодом:
Код:
System.IO.File.Move("Старый путь к файлу", "Путь с новым названием файла");
YYYY - по очереди.
XXX - генерируется по коду приведенному ниже
 

Мирон

Client
Регистрация
15.10.2015
Сообщения
29
Благодарностей
8
Баллы
3
YYYY - по очереди.
XXX - генерируется по коду приведенному ниже
Код:
var path = project.Variables["path"].Value; // Переменная, где указан путь к папке с файлами
var list = project.Lists["List"]; // Спипок для генерации YYYY


string[] files = Directory.GetFiles(path);
foreach (string p in files)
{
    var xxx = ""; //Ваш сгенерированый ХХХ
    string name1 = list[0];
    string fullName = @path + "\\" + name1 + "." + xxx;
    try {File.Move(p, fullName) ;}
    catch {project.SendWarningToLog("Файл - " + fullName + " уже существует!", true) ;}
    list.Remove(list[0]);
}
Если размер файлов небольшой - за 10 мин. справится.
 
Последнее редактирование:
  • Спасибо
Реакции: demian

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Уважаемые знатоки!
Вопрос от Евгения из города Самара.


Продублирую здесь вопрос созданной темы:
http://zennolab.com/discussion/threads/c-docx-kak-podkljuchit-root-docprops-core-xml-k-proektu.45483/

DocX как подключить /root/docProps/core.xml к проекту???
Использую библиотеку docx.dll для создания ДОК-документов. Вот эту:
https://github.com/xceedsoftware/DocX (она же была на старом конкурсе в статье от раджаба).

Нужно мне добавить Метаданные к созданному документу, для этого есть метод
addCoreProperty(...).

При добавлении свойства всегда возникает одна и та же ошибка:
Выполнение действия CSharp OwnCode Core properties part doesn't exist.

В исходнике, эта ошибка возникает вот в этом месте:
Код:
public void AddCoreProperty( string propertyName, string propertyValue )
    {
      var propertyNamespacePrefix = propertyName.Contains(":") ? propertyName.Split(':')[0] : "cp";
      var propertyLocalName = propertyName.Contains(":") ? propertyName.Split(':')[1] : propertyName;

      // If this document does not contain a coreFilePropertyPart create one.)
      if( !_package.PartExists( new Uri( "/docProps/core.xml", UriKind.Relative ) ) )
        throw new Exception( "Core properties part doesn't exist." );
Очевидно, что у меня нет того самого файла core.xml

Вот здесь инструкция что это за файл и куда его сохранить:
https://msdn.microsoft.com/en-us/library/bb264572(v=office.12).aspx


Cоздавал папку root/docProps/ в директории проекта, в папке /progs/ никаких изменений.
КТО подскажет как это делается??
 

Nezavisimus

Client
Регистрация
09.01.2016
Сообщения
62
Благодарностей
3
Баллы
8
Приветствую! Самый простой вопрос на засыпку)))
Как удалить несколько фаилов?
Можно по очереди в одном коде.
И путь желательно тоже в переменную закинуть.
Лайк гарантирую сразу. Заранее спасибо.

Знаю что это можно сделать (System.IO.File.Delete) но вот путь не могу в переменную закинуть
Вообщем необходимо удалить несколько фаилов из директории проекта.
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Приветствую! Самый простой вопрос на засыпку)))
Как удалить несколько фаилов?
Можно по очереди в одном коде.
И путь желательно тоже в переменную закинуть.
Лайк гарантирую сразу. Заранее спасибо.

Знаю что это можно сделать (System.IO.File.Delete) но вот путь не могу в переменную закинуть
Вообщем необходимо удалить несколько фаилов из директории проекта.
ну закинь пути в список и потом в цикле удали их
 

Medvedoc

Client
Регистрация
01.04.2017
Сообщения
164
Благодарностей
10
Баллы
18
Добавлю в копилку сниппеты

Сниппет C#: Switch с заменой выходных параметров. На форуме уже есть подобный сниппет.
Описание: Если в входных настройках проекта имеется DropDown меню, то оно передает свои входные параметры в переменную. В сниппите Switch после обработки значение переменной заменяется на необходимое значение.

Данный сниппет был создан благодаря kapelan28

Код:
switch (project.Variables["Переменная DropDown"].Value) {
    case "Значение 1 DropDown":
    project.SendInfoToLog("Выбрано Значение 1 DropDown", true);
    project.Variables["Переменная DropDown"].Value="Заменяемое значение 1";
    break;
    case "Значение 2 DropDown":
    project.SendInfoToLog("Выбрано Значение 2 DropDown", true);
    project.Variables["Переменная DropDown"].Value="Заменяемое значение 2";
    break;
    default:
    project.SendInfoToLog("Ничего не выбрано", true);
    project.Variables["Переменная DropDown"].Value="none";
    break;
}
 

Вложения

Последнее редактирование:

ssXXXss

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

Сниппет Switch с заменой выходных параметров. На форуме уже есть подобный сниппет.
Описание: Если в входных настройках проекта имеется DropDown меню, то оно передает свои входные параметры в переменную. В сниппите Switch после обработки значение переменной заменяется на необходимое значение.

Данный сниппет был создан благодаря kapelan28

Код:
switch (project.Variables["Переменная DropDown"].Value) {
    case "Значение 1 DropDown":
    project.SendInfoToLog("Выбрано Значение 1 DropDown", true);
    project.Variables["Переменная DropDown"].Value="Заменяемое значение 1";
    break;
    case "Значение 2 DropDown":
    project.SendInfoToLog("Выбрано Значение 2 DropDown", true);
    project.Variables["Переменная DropDown"].Value="Заменяемое значение 2";
    break;
    default:
    project.SendInfoToLog("Ничего не выбрано", true);
    project.Variables["Переменная DropDown"].Value="none";
    break;
}
мне кажется так красивше будет

C#:
var str = project.Variables["Переменная DropDown"].Value;

switch (str)
{
    case "Значение 1 DropDown":
        str = "Заменяемое значение 1";
        break;
    case "Значение 2 DropDown":
        str = "Заменяемое значение 2";
        break;
    default:
        str = "none";
        break;
}

project.SendInfoToLog("Выбрано Значение " + str + " DropDown", true);
project.Variables["Переменная DropDown"].Value = str;
 
  • Спасибо
Реакции: Medvedoc

Medvedoc

Client
Регистрация
01.04.2017
Сообщения
164
Благодарностей
10
Баллы
18

Medvedoc

Client
Регистрация
01.04.2017
Сообщения
164
Благодарностей
10
Баллы
18
Сниппет C#: Replace (замена в переменной текста)
Описание:
Сниппет предназначен для замены в переменной одного текста на другой. Можно использовать для замены каких-либо символов.

Код:
//replace замена в переменной одного значения на другое
var str = project.Variables["Значение переменной"].Value.Replace(" ", "+");
project.Variables["Значение переменной"].Value = str;
 

Вложения

Последнее редактирование:

Medvedoc

Client
Регистрация
01.04.2017
Сообщения
164
Благодарностей
10
Баллы
18
Код:
//replace замена в переменной одного значения на другое
var str = project.Variables["Значение переменной"].Value.Replace("Текст до замены", "Текст после замены");
project.Variables["Значение переменной"].Value = str;
 

Medvedoc

Client
Регистрация
01.04.2017
Сообщения
164
Благодарностей
10
Баллы
18
Сниппет C#: Replace Regex (замена по регулярному выражению с проверкой переменной на пустоту)
Описание:
Данный сниппет проверяет переменную на наличие в ней значения. Если в переменной содержится какое-то значение, то происходит согласно регулярному выражению замена одного значения на заданное.

Код:
//replace замена по регулярному выражению с проверкой

//проверяем содержит ли переменная значение
string Text = project.Variables["Значение переменной"].Value.Trim();
if (Text=="") {
    //если переменная пустая
    return "Одна из переменных пустая";
}
//если переменная содержит значение
Text = System.Text.RegularExpressions.Regex.Replace(Text, @"Регулярное выражение", "На что заменяем");
project.Variables["Значение переменной"].Value = Text;
return Text;
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: DDDmoney

Nezavisimus

Client
Регистрация
09.01.2016
Сообщения
62
Благодарностей
3
Баллы
8

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