Результаты поиска

  1. LaGir

    The name 'FileSystem' does not exist in the current context.

    Class FileSystem belongs to ZennoLab.Macros namespace. In CC, by default "ZennoLab.Macros.dll" is absent: So you need to add to References this dll from ZennoPoster directory, and add "using ZennoLab.Macros;" to your .cs file.
  2. LaGir

    Excel - возможна ли работа с листами

    Примеры этой статьи основаны на работе с двумя листами через ту либу.
  3. LaGir

    Экранирование символов для отправки SQL-запроса

    Одно из предназначений параметров - как раз экранирование, можно сказать, это и есть правильный подход. В коде, при использовании методов ZennoPoster.Db для связи с БД - создаём OrderedDictionary, заполняем его параметрами, вставляем как аргумент:
  4. LaGir

    подключение SQLite

    Если собираетесь работать с библиотечкой напрямую через код (без кубиков и методов ZennoPoster.Db), то достаточно подключить к шаблону саму либу "System.Data.SQLite.dll", и прописать в директивах "using System.Data.SQLite;". При этом инсталлер и всё прочее попросту не нужно.
  5. LaGir

    How to use custom c# function inside c# code block?

    This question is for the developers. But it seems there is a fifth version. In Visual Studio, it's better to debug the main logic of your templates, and work with the instance is better done in CodeCreator, imho. It is possible to emulate the instance and other things in VS, but there are many...
  6. LaGir

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

    Не знаю как в кубике, но в коде таймаут запроса указывается в миллисекундах. То есть, у тебя указано 30 мс (0,03 секунды), и судя по тексту ошибки этого времени слишком мало. С использованием прокси, имхо, как минимум секунд 10 стоит ставить (то есть писать 10000).
  7. LaGir

    How to use custom c# function inside c# code block?

    @zenfreak, you can debug your scripts in VS for using in Zenno, but you need to remember that it does not support last versions of C#. For example, your code from that topic: Code examples like this string k = "example"; return $"Some {k} of text"; is a short variant of String.Format method...
  8. LaGir

    Шаблон в ZennoPoster demo

    Проверьте блок шифрования, скорее всего там указана минимальная версия 5.10.7.0:
  9. LaGir

    How to use custom c# function inside c# code block?

    You can create field or property in your class (by the way, project works in the same way): And in the first C#-action of your template you need to initiate them: There is another way. If you need to use "instance" or "project", you can just pass them to your method as arguments:
  10. LaGir

    How to use custom c# function inside c# code block?

    1. 2.
  11. LaGir

    Кто как понимает разницу между делегатом и событием с# и их необходимость

    В дополнение к предыдущему ответу, в формате видео ещё тут довольно подробно и понятно объясняют:
  12. LaGir

    Как объединить пути xpath?

    Как вариант - искать нужное во всех документах страницы: //Перебираем в цикле все документы на странице foreach (var doc in Tab1.AllDocuments.Documents){ //Ищем нужные элементы в каждом документе var el1 = doc.FindElementByXPath("XPath1",0); var el2 =...
  13. LaGir

    Как получить кол-во строк из БД?

    Вот тут вместо ZennoPoster должен быть ZennoLab.
  14. LaGir

    Как получить кол-во строк из БД?

    Да, пардон, забыл про скриншот и чутка неверно работающий конвертер зеннки.
  15. LaGir

    Как получить кол-во строк из БД?

    Эти двойные кавычки внутри запроса ломают весь код. Замена их на одинарные кавычки должна помочь. Думаю, имелся ввиду именно зенновский метод ExecuteScalar.
  16. LaGir

    How to parse bullets on Amazon?

    https://help.zennolab.com/en/v5/zennoposter/5.10.6.0/webframe.html#topic382.html https://help.zennolab.com/en/v5/zennoposter/5.10.6.0/webframe.html#topic387.html https://help.zennolab.com/en/v5/zennoposter/5.10.6.0/webframe.html#topic107.html...
  17. LaGir

    Парсинг на C# https://www.fonbet.com/live

    Прочитал из интереса и тоже запилил, а уже отписались. Ну да может мой вариант тоже приглянется, с помещением сразу в табличку проекта. var table = project.Tables["Таблица 1"]; int i = 0; var basketRows =...
  18. LaGir

    rnd.Next(0,10) первое и последнее число что будет генерить?

    От 0 до 9 включительно, 10 как верхняя граница не считается.
  19. LaGir

    Как сделать перебор Английского алфавита?

    Думаю, гораздо проще обращаться к столбцам по номеру. Так же, как со строками, нумерация с нуля.
  20. LaGir

    Сниппеты эмуляции мыши: FullEmulationMouse

    За работой немного позабыл об этой темке хотя давно пора было ответить на вопрос, который задавал в первом посте темы. VladZen в этом сообщении объяснил, что sizeOfType, второй параметр метода FullEmulationMouseMoveAboveHtmlElement относится к отступам/примерному размеру шрифта "читаемого"...
  21. LaGir

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

    Нужно использовать второй вариант кода, но надо добавить какой-нибудь вариант скролла. "he.ScrollIntoView();" сам по себе не будет крутить экран к элементу, если элемента на текущем варианте страницы нет. Можно, например, использовать javascript отсюда. В итоге что-то типа такого должно быть...
  22. LaGir

    Нажать кнопку button в теге div, учитывая его стиль, среди нескольких подобных элементов

    XPath на скрине явно неправильный. Не уверен, что понял задачу, но если ориентироваться на выложенный html, див и кнопку можно найти следующим образом: //Получаем первый див с классом "order order-type-usual order-level-1" var div = instance.ActiveTab.FindElementByXPath("//div[@class='order...
  23. LaGir

    Работа с формами, не сохраняет данные

    Нужно поместить получение текста в обработчик нажатия кнопки: button.Click+= delegate(object sender, System.EventArgs e) { project.Variables["text"].Value = rtbox.Text; project.Variables["kod"].Value = "1"; F.Dispose(); }; А вот строчки 41 и 42 убрать совсем. При нажатии кнопки форма...
  24. LaGir

    Обсуждение версии 5.10.4.1

    Вот тут ещё есть информация и любительские примеры.
  25. LaGir

    Сниппеты эмуляции мыши: FullEmulationMouse

    Рассмотрим подробнее метод FullEmulationMouseSetOptions, доступный с версии 5.10.4.1. Предназначен он для установки параметров эмуляции мыши, причём после каждого вызова метода Navigate параметры сбрасываются на значения по умолчанию. Параметры. 1. pause Описание. Пауза в миллисекундах при...
  26. LaGir

    Сортировка таблицы C#

    Как вариант, можно что-нибудь типа такого использовать. А вообще, если переводите на c#, то имхо лучше сразу БД для таблиц использовать. Освоить не особо сложно, а возможностей гораздо больше и пользоваться намнооого удобнее.
  27. LaGir

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

    Если только цифры с одной запятой, точно нужно использовать именно зенновский метод, а не обычный Replace? Он и без запятой тем более нормально работает. project.Variables["Esti"].Value = project.Variables["Esti"].Value.Replace(",", String.Empty); Просто в 5.9.9.1 у класса TextProcessing ещё не...
  28. LaGir

    Сниппеты эмуляции мыши: FullEmulationMouse

    Приветствую всех! Не так давно ZennoLab порадовали нас обновой с виртуальной мышью. Хотя лично у меня пока не было нужды использовать мышь в своих проектах, из интереса посидел вечерок за тестами новой эмуляции. В результате родились на свет пара сниппетов и чутка размышлений, кои и...
  29. LaGir

    EPPlus и IZennoTable два вопроса.

    Стандартный функционал Zenno позволяет работать только с первым листом, для большего нужно использовать сторонние библиотеки. По приведённой выше ссылке как раз есть пример как записать данные в 2 разных листа одного Excel-файла с помощью EPPlus.
  30. LaGir

    Можно ли в xPath проверить сразу 2 значения?

    Можно, например с помощью оператора '|'. string strAttribute = instance.ActiveTab.FindElementByXPath("//div[@class='follow']|//div[@class='follow_vip']",0).GetAttribute("OuterHtml");
  31. LaGir

    C# Как нажать на кнопку, и учесть InnerText?

    Хорошо бы пример или более подробное объяснение, так пока не совсем ясно что именно требуется. Если нажатая в первый раз кнопка остаётся на странице, то да, следующий клик этим кодом будет по первой, так как номер совпадения стоит 0. Либо создавать коллекцию с кнопками и перебрать её с кликом...
  32. LaGir

    C# Как нажать на кнопку, и учесть InnerText?

    Если точно известен всё содержимое InnerText: Tab1.FindElementByXPath(".//div[@class='controls']/button[text()='нужный ИннерТекст']", 0).Click(); Если известна часть содержимого InnerText: Tab1.FindElementByXPath(".//div[@class='controls']/button[contains(text(), 'часть нужного ИннерТекста')]"...
  33. LaGir

    Обработка исключений при работе с ZennoPoster.Db

    Как и писал выше, значит надо начать работать с библиотекой MySql.Data.dll напрямую (она есть в папке Progs с установленным ZP, достаточно скопировать в ExternalAssemblies и подключить к проекту), в обход зенновских методов - тогда можно будет поймать и идентифицировать любую ошибку. Как...
  34. LaGir

    Обработка исключений при работе с ZennoPoster.Db

    Перехода в catch нет, так как сами по себе зенновские методы по работе с БД не могут как-то ломаться, они в любом случае возвращают некое значение. Для лучшего понимания рассмотрим работу этих методов на примере того же добавления строки (метод ExecuteNonQuery). Внутри методов соединение и...
  35. LaGir

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

    http://zennolab.com/discussion/threads/sozdanie-i-rabota-s-sobstvennymi-formami-oknami-windows-cherez-snippety-c.13416/
  36. LaGir

    Same Excel workbook, different sheets

    In this topic there are some examples of how to write to different sheets, use templates, apply conditional formatting with EPPlus. Also there are .xmlz file with those code examles. Оne problem - all of this in Russian, but I think it is not difficult to understand how it works. Also, you can...
  37. LaGir

    Same Excel workbook, different sheets

    ZennoPoster supports reading/writing data only to the first spreadsheet. But you can add any specialized external library to the References (e.g. EPPlus), and use it.
  38. LaGir

    Округлить число

    return Math.Floor(double.Parse(project.Variables["переменная"].Value.Replace(".", ",")));
  39. LaGir

    Чертовщина с unicode?

    На самом деле этот вариант тоже не работает. Записанная именно в кубике строка сама по себе конвертится на выходе: Почему так происходит и почему стандартные варианты кодирования не работают - хз, это походу у разрабов уже интересоваться надо. Но конкретно из переменной проекта можно получить...
  40. LaGir

    3 место Создание и работа с собственными формами (окнами) Windows через сниппеты C#.

    Пардон, затупил с допустимым местом выхода по ошибке. Рабочий вариант для той формы, через допфлаг fClosed: System.Windows.Forms.Form F = new System.Windows.Forms.Form(); F.Text = "Наша форма"; F.AutoSize=true; F.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; F.StartPosition =...
  41. LaGir

    3 место Создание и работа с собственными формами (окнами) Windows через сниппеты C#.

    Да, верно. Ошибку после того, как закрыли форму? Если да, то всё верно, это строка и предназначена для вывода ошибки (что приводит к выходу из сниппета по красной ветке или на BadEnd, завершение шаблона). Если нет - скорее всего проблема в другом участке кода, но без хотя бы описания ошибки...
  42. LaGir

    3 место Создание и работа с собственными формами (окнами) Windows через сниппеты C#.

    Выход из кода по красной ветке - throw new Exception(); или return null; В данном случае используем сразу после F.Close();
  43. LaGir

    Генерация красивых Excel-отчётов по шаблону

    С графиками можно, но решение в статье подразумевает чисто вывод в файлы Excel (то бишь, лучше применять, когда нужна именно отчётность). Если нужно какое-либо взаимодействие, работа с админкой - как писали выше, лучше сразу всё реализовывать на PHP+HTML+CSS.
  44. LaGir

    Генерация красивых Excel-отчётов по шаблону

    Получение данных из внутренних таблиц проекта рассмотрено чисто как базовый пример, так как новички обычно начинают именно с них. Исходил из того, что для тех, кто активно использует БД - либо не составит труда добавить несколько строчек кода для получения данных напрямую с базы, либо у них уже...
  45. LaGir

    Заголовок который принесет тебе 30$ за один день. Гарантировано.

    Если совсем не получается, спросить же можно в той же теме. :-) Там в цикле установки формулы должна быть примерно такая запись: for (int row = startRowT1; row < table1.RowCount+startRowT1; row++) ws1.Cells[row,5].Formula = String.Format("RANK.EQ(D{0};D{1}:D{2})", row, startRowT1...
  46. LaGir

    Генерация красивых Excel-отчётов по шаблону

    Дополнение к статье В качестве дополнительной части рассмотрим пару плюшек из возможностей библиотеки, на примере того же 2 листа из проекта-примера – возможно, кому-то пригодится. Код ниже используем в сниппете после формирования второго листа, но до сохранения. 1. Для начала сделаем...
  47. LaGir

    Генерация красивых Excel-отчётов по шаблону

    Приветствую всех! Наверняка многие из вас создавали шаблоны-парсеры. И, как правило, результаты в этом случае на выходе помещали в Excel-таблицы. Функционала ZennoPoster хватает для осуществления этих задач, за исключением несколько нюансов. Например, отсутствуют возможности для стилизации...
  48. LaGir

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

    Random num = new Random(); var a = 100000000000000; var b = 999999999999999; byte[] buffer = new byte[8]; num.NextBytes(buffer); var longRand = BitConverter.ToInt64(buffer, 0); var rand_num = (Math.Abs(longRand % (b - a)) + a); return rand_num;
  49. LaGir

    HtmlElement.ParentBody должен возвращать родительский элемент или тег Body?

    Страница может содержать несколько документов, у каждого свой body, у каждого свои элементы. Если нам надо получить body одного из документов страницы, но нам известен только его какой-либо элемент - вполне логичное свойство с логичным названием. Например рекламные блоки какой-либо сети на...
  50. LaGir

    HtmlElement.ParentBody должен возвращать родительский элемент или тег Body?

    В описании по ссылке написано именно "Gets the parent body", соответственно он и берёт body, ошибок нет. Для получения родительского элемента есть другое свойство, ParentElement.