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

Radzhab

Client
Joined
May 23, 2014
Messages
1,500
Reaction score
1,268
Points
113
  • Thank you
Reactions: MikR0ReR

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
8
Code:
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# то ноль, а тут то для меня все по другому, как небо и земля.
Распиши каждую строчку для грудничка!!!
 
Last edited:

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,648
Points
113
Code:
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;
 
  • Thank you
Reactions: MikR0ReR

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
8
Приветствую!
Работаю со списками в 30000 и 500000 строк. При проверки есть ли строки одного списка в другом занимает порой 4 часа.
Прошу подсказать как:
1. создать хеш список
2. засунуть туда простой список.
и пока остановимся на этом.
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
20,936
Reaction score
9,330
Points
113
Работаю со списками в 30000 и 500000 строк. При проверки есть ли строки одного списка в другом занимает порой 4 часа.
если нужно проверить один список вторым списком и выделить новые строки, которых нет в первом, то на форуме есть хороший снипет, отрабатывает почти мгновенно даже миллионы строк..
http://zennolab.com/discussion/threads/chernyj-spisok-korrektnaja-realizacija.13705/#post-81882
 
  • Thank you
Reactions: Rimen and MikR0ReR

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
8
Приветствую!
Спасибо sergodjan66 doc Radzhab за делегаты и словарь.
можно как нибудь парсить сразу в словарь Dictionary<string, string>???

сейчас так
Code:
//кладем в переменную то что будет парсится
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));
 
  • Thank you
Reactions: VadSmith

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
8
Привет!
Прошу подсказать, как, точнее куда нужно вписать код метода в CodeCreator'е?
Мне нужен маленький примерчик!
 
Last edited:

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
8
Доброго времени суток!
Прошу помощи в CodeCreator по С#, пытаюсь создать метод navigate()
Code:
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 иным способом???
 
Last edited:

List

Client
Joined
Sep 5, 2013
Messages
33
Reaction score
26
Points
18
Код переношу в класс "public class Program : IZennoCustomCode, IZennoCustomEndCode", тогда говорит что не знает "project.Profile.UserAgent".
project.Profile.UserAgent иным способом???
чтобы обратиться к юзерагенту профиля, вам нужно передать в метод объект project.
 
  • Thank you
Reactions: MikR0ReR

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
8
чтобы обратиться к юзерагенту профиля, вам нужно передать в метод объект project.
Если я правильно понимаю, объект это класс. Если Вас не затруднит мне бы примерчик!
Ну а пока саморазвитие привело меня к другому способу. При вызове метода передаю данные "navigate(url, project.Profile.UserAgent)"
 

List

Client
Joined
Sep 5, 2013
Messages
33
Reaction score
26
Points
18
При вызове метода передаю данные "navigate(url, project.Profile.UserAgent)"
Ну вот вы сами и показали как самым простым способом делается передача.

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

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


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




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



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

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

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

List

Client
Joined
Sep 5, 2013
Messages
33
Reaction score
26
Points
18
Если я правильно понимаю, объект это класс. Если Вас не затруднит мне бы примерчик!
Попробую помочь в меру своего субъективного видения.

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

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



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

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



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



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

MikR0ReR

Client
Joined
Sep 18, 2017
Messages
35
Reaction score
7
Points
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
Staff member
Joined
Oct 24, 2016
Messages
6,559
Reaction score
3,388
Points
113
Ребята подскажите какое Visual Studio подойдет с лихвой для Zennopostera ? Сейчас ставлю Visual Studip Express 2015 , но их же есть достаточно много разновидностей ( Communiti, Professional и т.д)
Подойдёт Rider, он мало весит и намного удобнее.
Подскажи понятные и простые для понимания материалы (видеокурсы и тп.) по C# Что можешь рекомендовать ?
Мне понравились данные курсы (хоть они и слегка староваты):
Язык программирования C# (часть 1)
Язык программирования C# (часть 2)
 
Last edited:

alexsandroid

Client
Joined
Aug 6, 2018
Messages
97
Reaction score
29
Points
18
если нужно проверить один список вторым списком и выделить новые строки, которых нет в первом, то на форуме есть хороший снипет, отрабатывает почти мгновенно даже миллионы строк..
http://zennolab.com/discussion/threads/chernyj-spisok-korrektnaja-realizacija.13705/#post-81882
Не получается зайти. Выдает:

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

Yuriy Zymlex

Moderator
Staff member
Joined
Oct 24, 2016
Messages
6,559
Reaction score
3,388
Points
113
Last edited:

LightWood

Moderator
Joined
Nov 4, 2010
Messages
2,382
Reaction score
918
Points
113
Не получается зайти. Выдает:

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

alexsandroid

Client
Joined
Aug 6, 2018
Messages
97
Reaction score
29
Points
18
На днях купил ZennoPoster. Логин в профиле заполнен.
 

alexsandroid

Client
Joined
Aug 6, 2018
Messages
97
Reaction score
29
Points
18

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
20,936
Reaction score
9,330
Points
113
Не получается зайти. Выдает:

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

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

Тело сообщения:
Email на который покупался "продукт такой то": email@email.com
Ник на форуме: Nickname
Email на форуме: email@email.ru
 
  • Thank you
Reactions: alexsandroid

bizzon

Client
Joined
Sep 8, 2015
Messages
1,104
Reaction score
132
Points
63
у многих кубиков есть функция перевода в c#
Как объединить в одно несколько кубиков
Как это лучше делать с СС если будет стоять такая задача, не в частном, а в общем, дайте совет на что внимание обращать?
 

Yuriy Zymlex

Moderator
Staff member
Joined
Oct 24, 2016
Messages
6,559
Reaction score
3,388
Points
113

mihanat

Client
Joined
Feb 26, 2017
Messages
38
Reaction score
18
Points
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
Joined
Jul 5, 2017
Messages
76
Reaction score
10
Points
8
Попробую помочь в меру своего субъективного видения.

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

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



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

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



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



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

ZSharp

Client
Joined
Sep 29, 2013
Messages
398
Reaction score
128
Points
43
Здравствуйте. понятно как передать данные в свой код, а как чтобы получить. Например есть код который получает из проэкта переменную с урлом для запроса, а как сделать чтобы в переменную проэкта передался полученный ответ.
Если я правильно понял, то вот так
Code:
//Отправляем значение с обработанной переменной C# "textCsharp" в переменную зенки textZenno
string textCsharp = "hello";
project.Variables["textZenno"].Value = textCsharp;
 

necolla

Client
Joined
Mar 6, 2018
Messages
3
Reaction score
0
Points
1
Здравствуйте. понятно как передать данные в свой код, а как чтобы получить. Например есть код который получает из проэкта переменную с урлом для запроса, а как сделать чтобы в переменную проэкта передался полученный ответ.
1.jpg
 

смм24

Client
Joined
Jul 5, 2017
Messages
76
Reaction score
10
Points
8

смм24

Client
Joined
Jul 5, 2017
Messages
76
Reaction score
10
Points
8
имеется в виду дерективы using и общий код.
Code:
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;
}
    }
   
}
а вот код который передает в класс
Code:
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
Joined
Sep 29, 2013
Messages
398
Reaction score
128
Points
43
Если я правильно понял, то вот так
Code:
//Отправляем значение с обработанной переменной C# "textCsharp" в переменную зенки textZenno
string textCsharp = "hello";
project.Variables["textZenno"].Value = textCsharp;
Вот это не подходит?
 

смм24

Client
Joined
Jul 5, 2017
Messages
76
Reaction score
10
Points
8

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)