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

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
C#:
var file = Path.Combine(project.Directory,project.Variables["z1"].Value);
var list = project.Lists["Список 1"];
File.WriteAllLines(file,list);
Спасибо, и последнее - а как наименование файла сделать из двух слов, одно из переменной, второе просто слово. И второе - как сделать так чтобы эта конструкция сохраняло файл в формате txt.
Спасибо.
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
И второе - как сделать так чтобы эта конструкция сохраняло файл в формате txt
нужно в переменную project.Variables["z1"].Value положить название файла и указать его расширение
Код:
список 1.txt
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
имеем имя файла
Спасибо, и последнее - а как наименование файла сделать из двух слов, одно из переменной, второе просто слово. И второе - как сделать так чтобы эта конструкция сохраняло файл в формате txt.
Спасибо.

ты бы прямо сразу написал что тебе надо, а то по кускам выпрашиапешь
 

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28

Protey

Client
Регистрация
09.01.2016
Сообщения
208
Благодарностей
29
Баллы
28
Подскажите как правильно использовать этот код C# в зенке, хочу картинку закодировать в base32, код нашел в интеренете (ссылка откуда взял в коде).
Если есть другое решение кодирование картинки в base32 для зенки, подскажите.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GoogleTK_Auth
{
    /// <summary>
    /// Кодирование-декодирование base 32
    /// thanks to http://stackoverflow.com/questions/641361/base32-decoding
    /// </summary>
    public class Base32
    {
        public static byte[] ToBytes(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                throw new ArgumentNullException("input");
            }

            input = input.TrimEnd('='); //remove padding characters
            int byteCount = input.Length * 5 / 8; //this must be TRUNCATED
            byte[] returnArray = new byte[byteCount];

            byte curByte = 0, bitsRemaining = 8;
            int mask = 0, arrayIndex = 0;

            foreach (char c in input)
            {
                int cValue = CharToValue(c);

                if (bitsRemaining > 5)
                {
                    mask = cValue << (bitsRemaining - 5);
                    curByte = (byte)(curByte | mask);
                    bitsRemaining -= 5;
                }
                else
                {
                    mask = cValue >> (5 - bitsRemaining);
                    curByte = (byte)(curByte | mask);
                    returnArray[arrayIndex++] = curByte;
                    curByte = (byte)(cValue << (3 + bitsRemaining));
                    bitsRemaining += 3;
                }
            }

            //if we didn't end with a full byte
            if (arrayIndex != byteCount)
            {
                returnArray[arrayIndex] = curByte;
            }

            return returnArray;
        }

        public static string ToString(byte[] input)
        {
            if (input == null || input.Length == 0)
            {
                throw new ArgumentNullException("input");
            }

            int charCount = (int)Math.Ceiling(input.Length / 5d) * 8;
            char[] returnArray = new char[charCount];

            byte nextChar = 0, bitsRemaining = 5;
            int arrayIndex = 0;

            foreach (byte b in input)
            {
                nextChar = (byte)(nextChar | (b >> (8 - bitsRemaining)));
                returnArray[arrayIndex++] = ValueToChar(nextChar);

                if (bitsRemaining < 4)
                {
                    nextChar = (byte)((b >> (3 - bitsRemaining)) & 31);
                    returnArray[arrayIndex++] = ValueToChar(nextChar);
                    bitsRemaining += 5;
                }

                bitsRemaining -= 3;
                nextChar = (byte)((b << bitsRemaining) & 31);
            }

            //if we didn't end with a full char
            if (arrayIndex != charCount)
            {
                returnArray[arrayIndex++] = ValueToChar(nextChar);
                while (arrayIndex != charCount) returnArray[arrayIndex++] = '='; //padding
            }

            return new string(returnArray);
        }

        private static int CharToValue(char c)
        {
            int value = (int)c;

            //65-90 == uppercase letters
            if (value < 91 && value > 64)
            {
                return value - 65;
            }
            //50-55 == numbers 2-7
            if (value < 56 && value > 49)
            {
                return value - 24;
            }
            //97-122 == lowercase letters
            if (value < 123 && value > 96)
            {
                return value - 97;
            }

            throw new ArgumentException("Character is not a Base32 character.", "c");
        }

        private static char ValueToChar(byte b)
        {
            if (b < 26)
            {
                return (char)(b + 65);
            }

            if (b < 32)
            {
                return (char)(b + 24);
            }

            throw new ArgumentException("Byte is not a value Base32 value.", "b");
        }

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

Protey

Client
Регистрация
09.01.2016
Сообщения
208
Благодарностей
29
Баллы
28
UP?
Подскажите как правильно использовать этот код C# в зенке, хочу картинку закодировать в base32, код нашел в интеренете (ссылка откуда взял в коде).
Если есть другое решение кодирование картинки в base32 для зенки, подскажите.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GoogleTK_Auth
{
    /// <summary>
    /// Кодирование-декодирование base 32
    /// thanks to http://stackoverflow.com/questions/641361/base32-decoding
    /// </summary>
    public class Base32
    {
        public static byte[] ToBytes(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                throw new ArgumentNullException("input");
            }

            input = input.TrimEnd('='); //remove padding characters
            int byteCount = input.Length * 5 / 8; //this must be TRUNCATED
            byte[] returnArray = new byte[byteCount];

            byte curByte = 0, bitsRemaining = 8;
            int mask = 0, arrayIndex = 0;

            foreach (char c in input)
            {
                int cValue = CharToValue(c);

                if (bitsRemaining > 5)
                {
                    mask = cValue << (bitsRemaining - 5);
                    curByte = (byte)(curByte | mask);
                    bitsRemaining -= 5;
                }
                else
                {
                    mask = cValue >> (5 - bitsRemaining);
                    curByte = (byte)(curByte | mask);
                    returnArray[arrayIndex++] = curByte;
                    curByte = (byte)(cValue << (3 + bitsRemaining));
                    bitsRemaining += 3;
                }
            }

            //if we didn't end with a full byte
            if (arrayIndex != byteCount)
            {
                returnArray[arrayIndex] = curByte;
            }

            return returnArray;
        }

        public static string ToString(byte[] input)
        {
            if (input == null || input.Length == 0)
            {
                throw new ArgumentNullException("input");
            }

            int charCount = (int)Math.Ceiling(input.Length / 5d) * 8;
            char[] returnArray = new char[charCount];

            byte nextChar = 0, bitsRemaining = 5;
            int arrayIndex = 0;

            foreach (byte b in input)
            {
                nextChar = (byte)(nextChar | (b >> (8 - bitsRemaining)));
                returnArray[arrayIndex++] = ValueToChar(nextChar);

                if (bitsRemaining < 4)
                {
                    nextChar = (byte)((b >> (3 - bitsRemaining)) & 31);
                    returnArray[arrayIndex++] = ValueToChar(nextChar);
                    bitsRemaining += 5;
                }

                bitsRemaining -= 3;
                nextChar = (byte)((b << bitsRemaining) & 31);
            }

            //if we didn't end with a full char
            if (arrayIndex != charCount)
            {
                returnArray[arrayIndex++] = ValueToChar(nextChar);
                while (arrayIndex != charCount) returnArray[arrayIndex++] = '='; //padding
            }

            return new string(returnArray);
        }

        private static int CharToValue(char c)
        {
            int value = (int)c;

            //65-90 == uppercase letters
            if (value < 91 && value > 64)
            {
                return value - 65;
            }
            //50-55 == numbers 2-7
            if (value < 56 && value > 49)
            {
                return value - 24;
            }
            //97-122 == lowercase letters
            if (value < 123 && value > 96)
            {
                return value - 97;
            }

            throw new ArgumentException("Character is not a Base32 character.", "c");
        }

        private static char ValueToChar(byte b)
        {
            if (b < 26)
            {
                return (char)(b + 65);
            }

            if (b < 32)
            {
                return (char)(b + 24);
            }

            throw new ArgumentException("Byte is not a value Base32 value.", "b");
        }

    }
}
 

vitorrio

Client
Регистрация
13.03.2016
Сообщения
76
Благодарностей
21
Баллы
8
Как выводить сообщение в лог Зенки? Не в лог Maker, а именно в зенку без оповещения в виде окна.

C#:
project.SendWarningToLog("Текст оповещения", "Текст перед оповещением", true);
- Это может быть работало раньше, сейчас что-то не получается.

C#:
Global.SpecialForms.AlertNotificator.Instance.DisplayAlert("Заголовок", "Текст оповещения", null, 5000);
- Это выводит алерты, но ничего в лог не выводит, и да в хелпе что-то ненашел этот метод, тыкните если есть
 
Последнее редактирование:

iblohin

Client
Регистрация
10.09.2015
Сообщения
64
Благодарностей
2
Баллы
8
Ребята, помогите пожалуйста написать сниппет, который ищет в списке строку, которая содержит переменную (полное совпадение), если находит то выводит номер строки, а иначе false.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
При нахождении строки выведет номер строки, отсчёт от нуля
иначе выйдет по красной

C#:
// твоя переменая с тектом
var text = project.Variables["text"].Value;

var sourceList = project.Lists["SourceList"];

// если список не изменяется можно не лочить
lock(SyncObjects.ListSyncer)
{
    var stroka = sourceList.First(s=>s.Contains(text));
    return sourceList.IndexOf(stroka);
}
 
  • Спасибо
Реакции: iblohin и Sanekk

iblohin

Client
Регистрация
10.09.2015
Сообщения
64
Благодарностей
2
Баллы
8
спасибо, все четко!
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
  • Спасибо
Реакции: iblohin

iblohin

Client
Регистрация
10.09.2015
Сообщения
64
Благодарностей
2
Баллы
8
Подскажите пожалуйста еще сниппет на удаление последних 3 строчек из списка
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Подскажите пожалуйста еще сниппет на удаление последних 3 строчек из списка
C#:
var list = project.Lists["Название списка"];
lock(SyncObjects.ListSyncer)
{
    list.RemoveAt(list.Count - 1); //удаляем последнюю строку
    list.RemoveAt(list.Count - 1); //удаляем последнюю строку
    list.RemoveAt(list.Count - 1); //удаляем последнюю строку
}
 
  • Спасибо
Реакции: iblohin

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
C#:
var list = project.Lists["Название списка"];
lock(SyncObjects.ListSyncer)
{
    list.RemoveAt(list.Count - 1); //удаляем последнюю строку
    list.RemoveAt(list.Count - 1); //удаляем последнюю строку
    list.RemoveAt(list.Count - 1); //удаляем последнюю строку
}
а если сто строк ?? ))
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63

vitorrio

Client
Регистрация
13.03.2016
Сообщения
76
Благодарностей
21
Баллы
8
Напишите и про мой вопрос тоже)
1. Как выводить в лог ZP через C#?
Сейчас сделал через БД SQL, приходится логи смотреть там.

2. И он стирает логи по достижении определенного лимита, как повысить этот лимит или убрать?

4. Какое свойство отвечает за окончание загрузки страницы? Тут поясню, у нас есть WaitDownloading, но он не позволяет нам самим управлять ходом выполнения кода, например если страница загружается 2 минуты(по причине ужасного прокси) резко оборвать снипет я не могу, мне приходится ждать, а за это время информация, что на странице уже не актуальна, потому мне нужно св-во к которому я смогу обращаться внутри цикла.
 

barkasian

Client
Регистрация
03.12.2014
Сообщения
127
Благодарностей
137
Баллы
43
Приветствую!
Подскажите как в C# объявить массив со списками проекта, и пройтись в цикле очистить их все?

Код:
IZennoList list1 = project.Lists["Список 1"];
IZennoList list2 = project.Lists["Список 2"];
IZennoList list3 = project.Lists["Список 3"];
IZennoList list4 = project.Lists["Список 4"];
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
Приветствую!
Подскажите как в C# объявить массив со списками проекта, и пройтись в цикле очистить их все?

Код:
IZennoList list1 = project.Lists["Список 1"];
IZennoList list2 = project.Lists["Список 2"];
IZennoList list3 = project.Lists["Список 3"];
IZennoList list4 = project.Lists["Список 4"];
C#:
string [] lists = new [] {"Список 1", "Список 2", "Список N"};
foreach (var list in lists){
    project.Lists[list].Clear();   
}
 
  • Спасибо
Реакции: WEISS и barkasian

iblohin

Client
Регистрация
10.09.2015
Сообщения
64
Благодарностей
2
Баллы
8
Ребята, подскажите пожалуйста:

есть ссылка на изображение, это изображение требуется перевести в формат base64Binary и вернуть результат в переменную

Стандартно это нереализуемо, Как реализовать на C#?
(ссылка для примера лежит тут https://goo.gl/ehrAdr)
 
Последнее редактирование:

sentinel

Client
Регистрация
17.01.2016
Сообщения
35
Благодарностей
7
Баллы
8
Подскажите пожалуйста еще сниппет на удаление последних 3 строчек из списка
Код:
int need_to_delete = 3;
project.Lists["Destination_list"].GetItems((project.Lists["Destination_list"].Count - need_to_delete).ToString() + "-end", true);

а если сто строк ?? ))
Как вариант таким способом:
Код:
project.Lists["destination_list"].GetItems("100-end", true);
С 100-й строки и до конца все удалится.
 
Последнее редактирование:
  • Спасибо
Реакции: iblohin

iblohin

Client
Регистрация
10.09.2015
Сообщения
64
Благодарностей
2
Баллы
8
есть ссылка на изображение, это изображение требуется перевести в формат base64Binary и вернуть результат в переменную
если это сложно реализовать силами зенки (поиск вообще результатов не дал по этому вопросу), то может есть какойто онлайн сервис, который может по урлу изображение перевести в base64Binary и отдать результат? Я может на пост-гетах бы как то с ним поработал.. подскажите, я в base64Binary очслабо шарю)
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Ищу сниппет для взятия аудио рекапчи без бана.
 

Protey

Client
Регистрация
09.01.2016
Сообщения
208
Благодарностей
29
Баллы
28

Вложения

  • Спасибо
Реакции: Sanekk и iblohin

AvvaddoN

Client
Регистрация
21.01.2017
Сообщения
13
Благодарностей
0
Баллы
1
А подскажите плиз. Искал, искал - не нашел ответа на форуме.

Есть список с ценами. Нужно работать с элементами, как с числами.
Никак не врублюсь как сконвертить массив из string в int.
пытался внутри цикла Int32.Parse(arr) - не вышло.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
А подскажите плиз. Искал, искал - не нашел ответа на форуме.

Есть список с ценами. Нужно работать с элементами, как с числами.
Никак не врублюсь как сконвертить массив из string в int.
пытался внутри цикла Int32.Parse(arr) - не вышло.
C#:
IZennoList list = project.Lists["List"];
int[] num = Array.ConvertAll(list.ToArray(), int.Parse);
или
C#:
IZennoList list = project.Lists["List"];
int[] num = list.Select(int.Parse).ToArray();
 
  • Спасибо
Реакции: AvvaddoN и sentinel

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Как выводить в лог ZP через C#?
C#:
project.SendInfoToLog("Сообщение", "Путь", true); // true - показывать в ZP, false - НЕ показывать в ZP; в PM показывается в любом случае
project.SendWarningToLog("Сообщение", "Путь", true);
project.SendErrorToLog("Сообщение", "Путь", true);
Какое свойство отвечает за окончание загрузки страницы?
C#:
instance.ActiveTab.NavigateTimeout = 60; // тайм-аут загрузки страниц, сек
Screenshot_1.png
 
  • Спасибо
Реакции: sentinel и vitorrio

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