2 место Познакомься, это C# . Просто, быстро, удобно! + подборка сниппетов внутри.

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
  • Спасибо
Реакции: MikR0ReR

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Код:
Func<int,int> Summa;
        Summa  = (x,y)=>{
           return x+y;
        };
var result = Summa(2,3); // Результат 5
Ошибка в действии "CS1593" "Делегат "System.Func<int,int>" не принимает "2" аргументов". [Строка: 2; Cтолбец: 18]
Ошибка в действии "CS1593" "Делегат "Func" не принимает "2" аргументов". [Строка: 6; Cтолбец: 14]

Я в c# то ноль, а тут то для меня все по другому, как небо и земля.
Распиши каждую строчку для грудничка!!!
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113
Код:
Func<int,int> Summa;
        Summa  = (x,y)=>{
           return x+y;
        };
var result = Summa(2,3); // Результат 5
Ошибка в действии "CS1593" "Делегат "System.Func<int,int>" не принимает "2" аргументов". [Строка: 2; Cтолбец: 18]
Ошибка в действии "CS1593" "Делегат "Func" не принимает "2" аргументов". [Строка: 6; Cтолбец: 14]

Я в c# то ноль, а тут то для меня все по другому, как небо и земля.
Распиши каждую строчку для грудничка!!!
попробуй Func<int,int,int> Summa;
 
  • Спасибо
Реакции: MikR0ReR

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Приветствую!
Работаю со списками в 30000 и 500000 строк. При проверки есть ли строки одного списка в другом занимает порой 4 часа.
Прошу подсказать как:
1. создать хеш список
2. засунуть туда простой список.
и пока остановимся на этом.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 443
Благодарностей
8 672
Баллы
113
Работаю со списками в 30000 и 500000 строк. При проверки есть ли строки одного списка в другом занимает порой 4 часа.
если нужно проверить один список вторым списком и выделить новые строки, которых нет в первом, то на форуме есть хороший снипет, отрабатывает почти мгновенно даже миллионы строк..
http://zennolab.com/discussion/threads/chernyj-spisok-korrektnaja-realizacija.13705/#post-81882
 
  • Спасибо
Реакции: Rimen и MikR0ReR

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Приветствую!
Спасибо sergodjan66 doc Radzhab за делегаты и словарь.
можно как нибудь парсить сразу в словарь Dictionary<string, string>???

сейчас так
Код:
//кладем в переменную то что будет парсится
string body=project.Variables["body"].Value;
//составляем регулярку
Regex regularka=new Regex(project.Variables["regularka"].Value);
//определяем список в который парсим
var link=project.Lists["link"];
//парсим
regularka.Matches(body).Cast<Match>().ToList().ForEach(m=>link.Add(m.Value));
 
  • Спасибо
Реакции: VadSmith

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Привет!
Прошу подсказать, как, точнее куда нужно вписать код метода в CodeCreator'е?
Мне нужен маленький примерчик!
 
Последнее редактирование:

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Доброго времени суток!
Прошу помощи в CodeCreator по С#, пытаюсь создать метод navigate()
Код:
public string navigate(string url_func)
            {            
                var HttpGet = ZennoPoster.HttpGet(
                //урл
                url_func,
                //прокси
                "",
                //кодировка
                "UTF-8",
                //что грузим
                ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
                //таймаут
                30000,
                //куки
                "",
                //агент
                project.Profile.UserAgent,
                //редирект
                true,
                //редирект
                5,
                //заголовки в кавычках через запятую
                AdditionalHeaders: new[] { "", "" },
                //папка для загрузки файла
                DownloadPath: project.Directory + @"\Captchas"
                );
                return HttpGet;
            }
этот код помешаю в "public int ExecuteCode(Instance instance, IZennoPosterProjectModel project)", ругается. Код переношу в класс "public class Program : IZennoCustomCode, IZennoCustomEndCode", тогда говорит что не знает "project.Profile.UserAgent".

Прошу помочь, как решить задачку!

Хорошо, спрошу по другому, как можно обращаться к данным профиля project.Profile.UserAgent иным способом???
 
Последнее редактирование:

List

Client
Регистрация
05.09.2013
Сообщения
33
Благодарностей
26
Баллы
18
Код переношу в класс "public class Program : IZennoCustomCode, IZennoCustomEndCode", тогда говорит что не знает "project.Profile.UserAgent".
project.Profile.UserAgent иным способом???
чтобы обратиться к юзерагенту профиля, вам нужно передать в метод объект project.
 
  • Спасибо
Реакции: MikR0ReR

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
чтобы обратиться к юзерагенту профиля, вам нужно передать в метод объект project.
Если я правильно понимаю, объект это класс. Если Вас не затруднит мне бы примерчик!
Ну а пока саморазвитие привело меня к другому способу. При вызове метода передаю данные "navigate(url, project.Profile.UserAgent)"
 

List

Client
Регистрация
05.09.2013
Сообщения
33
Благодарностей
26
Баллы
18
При вызове метода передаю данные "navigate(url, project.Profile.UserAgent)"
Ну вот вы сами и показали как самым простым способом делается передача.

В классе Program точно так же было показано это три раза.

Методам GoodEnd,BadEnd,ExecuteCode передаются объекты - project и instance


В этих методах будет полный доступ к project




Самый легкий способ сделать по аналогии:



В комментариях документации специально указано:

/// <param name="project">Объект проекта выделенный для данного скрипта</param>

Я сам с C# знаком очень поверхностно. Надеюсь профи подскажут если что не так.
 
  • Спасибо
Реакции: MikR0ReR

List

Client
Регистрация
05.09.2013
Сообщения
33
Благодарностей
26
Баллы
18
Если я правильно понимаю, объект это класс. Если Вас не затруднит мне бы примерчик!
Попробую помочь в меру своего субъективного видения.

Класс - это тоже объект, если его рассматривать в контексте пространства в котором он существует(написан,реализован), класс будет вложенным объектом в пространство имен.

Пример:
Возьмем первый "лист" - Program.cs который нам создает CC.
СС автоматически создал для нас пространство имен Test(по имени моего проекта) и класс Program который является вложенным в это пространство имён.



Далее если мы поместим предложенный вами метод navigate в класс Program, метод станет объектом класса в который он входит.

т.е метод navigate станет объектом класса Program который является объектом пространства имён Test :-)



можно создать "экземпляр - объект" класса Program с произвольным именем, например Box.
таким способом:
Код:
Program Box = new Program();
Вот это как раз и будет конкретным проявлением объекта.
"Box" - это ОБЪЕКТ(экземпляр) класса Program который причем унаследовал и все параметры класса Program и в том числе ваш метод navigate.



из вики:
Экземпляр класса (англ. instance) — это описание конкретного объекта в памяти. Класс описывает свойства и методы, которые будут доступны у объекта, построенного по описанию, заложенному в классе. Экземпляры используются для представления (моделирования) конкретных сущностей реального мира.
 
  • Спасибо
Реакции: MikR0ReR

MikR0ReR

Client
Регистрация
18.09.2017
Сообщения
35
Благодарностей
7
Баллы
8
Привет! Нужно из словаря взять ключ. Состряпал такой вариант.
C#:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("1", "один");

Dictionary<string, string>.Enumerator num = dict.GetEnumerator();
num.MoveNext();
string key = num.Current.Key;
Console.WriteLine(key);
Работает.
Будут варианты как добраться короче, пишите.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 367
Благодарностей
3 292
Баллы
113
Ребята подскажите какое Visual Studio подойдет с лихвой для Zennopostera ? Сейчас ставлю Visual Studip Express 2015 , но их же есть достаточно много разновидностей ( Communiti, Professional и т.д)
Подойдёт Rider, он мало весит и намного удобнее.
Подскажи понятные и простые для понимания материалы (видеокурсы и тп.) по C# Что можешь рекомендовать ?
Мне понравились данные курсы (хоть они и слегка староваты):
Язык программирования C# (часть 1)
Язык программирования C# (часть 2)
 
Последнее редактирование:

alexsandroid

Client
Регистрация
06.08.2018
Сообщения
91
Благодарностей
28
Баллы
18
если нужно проверить один список вторым списком и выделить новые строки, которых нет в первом, то на форуме есть хороший снипет, отрабатывает почти мгновенно даже миллионы строк..
http://zennolab.com/discussion/threads/chernyj-spisok-korrektnaja-realizacija.13705/#post-81882
Не получается зайти. Выдает:

ZennoLab discussions - Ошибка
У Вас нет прав для просмотра этой страницы или для выполнения этого действия.​
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 367
Благодарностей
3 292
Баллы
113
Последнее редактирование:

LightWood

Moderator
Регистрация
04.11.2010
Сообщения
2 382
Благодарностей
915
Баллы
113
Не получается зайти. Выдает:

ZennoLab discussions - Ошибка
У Вас нет прав для просмотра этой страницы или для выполнения этого действия.​
Тема крайне старая и уже в архиве. Без статуса клиент доступа нет.
У Вас купленный подукт зеннолаба какой-нибудь есть?
 

alexsandroid

Client
Регистрация
06.08.2018
Сообщения
91
Благодарностей
28
Баллы
18
На днях купил ZennoPoster. Логин в профиле заполнен.
 

alexsandroid

Client
Регистрация
06.08.2018
Сообщения
91
Благодарностей
28
Баллы
18

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 443
Благодарностей
8 672
Баллы
113
Не получается зайти. Выдает:

ZennoLab discussions - Ошибка
У Вас нет прав для просмотра этой страницы или для выполнения этого действия.​
С емейла, на который покупался продукт Зеннолаба, напишите сообщение на [email protected]
с указанием логина и емейла на форуме. Либо создать новое сообщение в тикет-системе на support.zennolab.com.

Тема сообщения:
Хочу получить статус Client на форуме

Тело сообщения:
Email на который покупался "продукт такой то": [email protected]
Ник на форуме: Nickname
Email на форуме: [email protected]
 
  • Спасибо
Реакции: alexsandroid

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 085
Благодарностей
126
Баллы
63
у многих кубиков есть функция перевода в c#
Как объединить в одно несколько кубиков
Как это лучше делать с СС если будет стоять такая задача, не в частном, а в общем, дайте совет на что внимание обращать?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 367
Благодарностей
3 292
Баллы
113

mihanat

Client
Регистрация
26.02.2017
Сообщения
32
Благодарностей
18
Баллы
8
Здравствуйте, не поможете, столкнулся с проблемой, в написании своего первого шаблона C#, хочу получить значение элемента , а там, если кубиком делать, в переменную возвращается перенос строки, может еще пустота какая то, и в конце текст, мне его надо, я бы оттримил, а когда
HtmlElement Gro = instance.ActiveTab.FindElementByAttribute("span", "class", @"dropdown_ac\ button-pro\ __with-arrow\ __sec\ __wide", "regex", 0);
return Gro.GetAttribute("innertext");
одна пустота и перенос. как текст то достать, кубиком то есть же, я же кубик в код не вставлю, где я туплю, а?
 

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8
Попробую помочь в меру своего субъективного видения.

Класс - это тоже объект, если его рассматривать в контексте пространства в котором он существует(написан,реализован), класс будет вложенным объектом в пространство имен.

Пример:
Возьмем первый "лист" - Program.cs который нам создает CC.
СС автоматически создал для нас пространство имен Test(по имени моего проекта) и класс Program который является вложенным в это пространство имён.



Далее если мы поместим предложенный вами метод navigate в класс Program, метод станет объектом класса в который он входит.

т.е метод navigate станет объектом класса Program который является объектом пространства имён Test :-)



можно создать "экземпляр - объект" класса Program с произвольным именем, например Box.
таким способом:
Код:
Program Box = new Program();
Вот это как раз и будет конкретным проявлением объекта.
"Box" - это ОБЪЕКТ(экземпляр) класса Program который причем унаследовал и все параметры класса Program и в том числе ваш метод navigate.



из вики:
Экземпляр класса (англ. instance) — это описание конкретного объекта в памяти. Класс описывает свойства и методы, которые будут доступны у объекта, построенного по описанию, заложенному в классе. Экземпляры используются для представления (моделирования) конкретных сущностей реального мира.
Здравствуйте. понятно как передать данные в свой код, а как чтобы получить. Например есть код который получает из проэкта переменную с урлом для запроса, а как сделать чтобы в переменную проэкта передался полученный ответ.
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Здравствуйте. понятно как передать данные в свой код, а как чтобы получить. Например есть код который получает из проэкта переменную с урлом для запроса, а как сделать чтобы в переменную проэкта передался полученный ответ.
Если я правильно понял, то вот так
Код:
//Отправляем значение с обработанной переменной C# "textCsharp" в переменную зенки textZenno
string textCsharp = "hello";
project.Variables["textZenno"].Value = textCsharp;
 

necolla

Client
Регистрация
06.03.2018
Сообщения
3
Благодарностей
0
Баллы
1
Здравствуйте. понятно как передать данные в свой код, а как чтобы получить. Например есть код который получает из проэкта переменную с урлом для запроса, а как сделать чтобы в переменную проэкта передался полученный ответ.
1.jpg
 

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8
имеется в виду дерективы using и общий код.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
using System.Net.Http;

namespace ZennoLab.OwnCode
{
    /// <summary>
    /// A simple class of the common code
    /// </summary>
    public class CommonCode
    {
        /// <summary>
        /// Lock this object to mark part of code for single thread execution
        /// </summary>
        public static object SyncObject = new object();

        // Insert your code here
        public static string SendPhoto (string photo, string url_telegram){
var sBoundary = DateTime.Now.Ticks.ToString("x");
var contentType = "multipart/form-data";
string sPostMultiString = "";
// функция сбора данных
Func<string, string, string, string> multiFormDataText = delegate(string key, string value, string boundary) {
var output = string.Format("--{0}\r\n", boundary);
output += string.Format("Content-Disposition: form-data; name=\"{0}\"\r\n\r\n", key);
output += value + "\r\n";
return output;
};
// функция сбора данных
Func<string, string, string, string, string, string> multiFormDataFile = delegate(string key, string value, string fileName, string fileType, string boundary) {
var output = string.Format("--{0}\r\n", boundary);
output += string.Format("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n", key, fileName);
output += string.Format("Content-Type: {0}\r\n\r\n", fileType);
output += string.Format("{0}\r\n", value);
return output;
};
// другие поля
sPostMultiString += multiFormDataText("action", "upload", sBoundary);
// файл
var fileInfo = new System.IO.FileInfo(photo);
sPostMultiString += multiFormDataText("width", fileInfo.Name, sBoundary);
sPostMultiString += multiFormDataFile("photo", fileInfo.FullName, fileInfo.Name, "image/png", sBoundary);
string str = ZennoPoster.HttpPost(url_telegram, sPostMultiString, contentType,"","",ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,30);
return str;
}
    }
   
}
а вот код который передает в класс
Код:
string strToken = project.Variables["bot_id"].Value;
string strChatId = project.Variables["chat_id"].Value;
string parse_mode = "html";
string img = project.Variables["img"].Value;
string url_bot = string.Format("https://api.telegram.org/bot{0}/sendPhoto?chat_id={1}", strToken, strChatId);
string temp = CommonCode.SendPhoto(img, url_bot);
по return возвращает ok, а нужно заголовки и тело ответа на запрос
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Если я правильно понял, то вот так
Код:
//Отправляем значение с обработанной переменной C# "textCsharp" в переменную зенки textZenno
string textCsharp = "hello";
project.Variables["textZenno"].Value = textCsharp;
Вот это не подходит?
 

смм24

Client
Регистрация
05.07.2017
Сообщения
76
Благодарностей
10
Баллы
8

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