// НАСТРОЙКИ
string listName = "Список 1"; // Название списка со строками, которые нужно обрезать.
int limit = 50; // Сколько первых символов оставляем у каждой строки.
List<string> baseList = project.Lists[listName].ToList();
// В строке ниже мы очищаем список. Если этого делать не надо, то...
Ну и по традиции.
Начинать с вики - https://zennolab.com/wiki/ru:start
Потом видеоуроки от Rostonix'а - https://zennolab.com/discussion/threads/videouroki-po-rabote-s-zennoposter-ot-rostonix-besplatno.33086/
Всё сработает. Сравниваются две переменные проекта - test и select. Если они НЕ равны, то данный экшен выйдет по зелёной ветке. Если же эти переменные равны, то будет выход по красной ветке, а в лог попадёт запись, которая находится в этой строке throw new Exception("Тут любой желаемый текст")...
На мой взгляд ещё стоит проверять существование файла. Т.к. только что тестил код, указал в пути к файлу бредостроку (естественно я забыл об этом) и получил ошибку с не очевидным, для меня, описанием. Легко её найти удалось только потому, что в проекте один кубик и в этом кубике всего 4 строки...
Да, была ошибка - после того как сюда запостил сообщение, то переименовал переменную в одном месте, а во втором забыл:bk:
Отредактировал предыдущее сообщение, теперь работает.
string path = @"тут полный путь к файлу";
DateTime time= new System.IO.FileInfo(path).LastWriteTime;
TimeSpan diff = DateTime.Now - time;
return Convert.ToInt32(diff.TotalSeconds);
UPD: Исправил ошибку в коде.
Могу посоветовать Tesseract. Использовал в одном из проектов, нужно было номера телефонов с картинки доставать, результат был, примерно, 99% (стоит отметить тот факт, что телефоны на изображениях были чётко видны, без искажений, черный текст на белом фоне).
project.Variables["ssylka"].Value не надо эту конструкцию обрамлять кавычками.
Вот как должна выглядеть 5-я строка - string chatId = project.Variables["ssylka"].Value;
В последней версии (5.18.0.0) этот метод поправили:
• Исправлена работа методе Contains в IZennoList.
По крайней мере я думаю, что исправили именно это поведение метода на корректное.
Входящие настройки - это те же переменные проекта. В экшене "Проект в проекте" можно передавать значения переменных из внешнего проекта во внутренний. Смотрим какие значения могут принять переменные во входящих настройках вложенного проекта и... передаём необходимые значения.
Вот, поправил код:
string input_date = "28.05.2018 14:11:58";
// Оставляем только время, отсекая дату и день недели.
string time_str = input_date.Trim().Split(' ')[1].Trim();
// Переводим время в секунды.
int seconds = (int)TimeSpan.Parse(time_str).TotalSeconds;
// Сколько секунд осталось до...
string input_date = "14:11:58, понедельник 28, май 2018";
// Оставляем только время, отсекая дату и день недели.
string time_str = input_date.Split(',')[0].Trim();
// Переводим время в секунды.
int seconds = (int)TimeSpan.Parse(time_str).TotalSeconds;
// Сколько секунд осталось до конца дня...
Перевести время в секунды (только вермя, дату не трогаем). Потом 86400 (кол-во секунд в сутках) минус полученное на предыдущем шаге кол-во секунд. Узнаем сколько секунд осталось до конца дня. При необходимости можно будет конвертировать в часы и минуты.
project.Lists["blacklist"] - это "Список 2". Т.е. список с которым будем сравниваться.
project.Lists["INPUT"] - это "Список 1". Данный список сравниваем со "Списком 2".
project.Lists["OUTPUT"] - в этом списке будет результат сравнения.
IEnumerable<string> blacklist = from item in...
Экшн "Свой JavaScript код", из выпадающего меню сверху выбрать "на текущей странице" ("локально" у меня почему-то не сработало)
Увеличиваем число на 5%:
return {-Variable.number-} + {-Variable.number-} * 0.05;
// В настройках самого экшена не забыть указать переменную,
// в которую будет записываться итоговый результат.
// Начало отсчёта.
int start = 1;
// Конец отсчёта.
int end = 40;
// Разделитель. В данном случае новая строка.
// Если разделитель не нужен, то вместо Environment.NewLine вписать...
var processes = from proc in System.Diagnostics.Process.GetProcesses() select proc.ProcessName;
// Раскомментировав код ниже можно получить строку со всеми
// запущенными процессами (разделёнными запятой).
// Чтобы посмотреть как точно называется наш процесс.
// return String.Join(", "...
Скорее всего дело в том, что первый раз мышь перемещается из стартовой позиции в точку (10, 20). При повторном запуске этого кода мышь уже находится в точке (10, 20), поэтому она и не перемещается.
Написал сниппет. У себя тестил, всё работает.
Возможно есть более изящные варианты решения данной задачи; в этом сниппете я слепил то, что когда-то встречал на форуме.
В Project Maker он работать отказывается, проверять в ZP. Перед запуском надо добавить в Ссылки из GAC библиотеку System.Xml...
Использовать экшн =%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82']"Проект в проекте"
В конце шаблона, который перезагружает модем, добавляем через "Проект в проекте" закрытый шаблон.
В настройках шаблона (в ЗП) ставим необходимое нам кол-во выполнений.
Можно немного иначе поступить.
Экшн "Свой C#" =>
instance.WaitForUserAction(60); // 60 - это задержка в секундах, сколько будет открыто окно инстанса.
Откроется окно инстанса на указанное кол-во секунд. В правом нижнем углу будет кнопка "Продолжить выполнение", после того как человек закончил...
Верно, но у Jungle Spirit Mixes тэг td, а у названий - span. Вот и выбираем в качестве тега span.
Потом в =%D1%86%D0%B8%D0%BA%D0%BB']цикле собираем все названия и добавляем их в =%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA']список.
За пределами цикла создаём...
Действительно возвращает.
Странно, я помню, что проверял этот способ и он у меня не работал - Exception всегда был null.
Или в зенке он не хотел у меня работать (хотя разницы быть не должно, как на мой взгляд). Через пару дней зенка освободится и обязательно проверю.
Спасибо.
Пробовал. Непосредственно у project.GetLastError() нет свойства Message, но есть свойство Exception, у которого, в свою очередь, есть Message. Проблема заключалась в том, что Exception был у меня всегда null (может я что-то не так делал).
Впрочем, уже не важно. Данную задачу я так и не решил...
Это не то. При выполнении данного кода возвращается комментарий, который прописан у экшена (либо пустая строка, если комментария нет). А мне нужен текст ошибки\исключения.
Можно ли получить текст ошибки с которой завершился шаблон? Имею ввиду текст, который пишется в лог ЗП - "Не найден Html елемент...", либо "Ошибка обращения к instance.ActiveTab" и т.п.
Как получить id сбойного действия я знаю, а вот получить текст не получилось.
Естественно получить этот...