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

  • Автор темы Автор темы CSS
  • Дата начала Дата начала
Всем привет!
Есть код который декодит из Base64

C#:
Развернуть Свернуть Копировать
byte[] data = Convert.FromBase64String(project.Variables["acc_cook"].Value);
string decodedString = Encoding.UTF8.GetString(data);
return decodedString;

Обычно в конце закодированного текста всегда присутствует знак "=" (Пример: "aGVsbG8=")
Но в моих ситуациях иногда приходит текст без = в конце.
Онлайн конвертеры справляются с этим косяком и декодят нормально, но данный код вылетает с ошибкой "Недопустимая длина строки или массива знаков Base-64."

Решил данную проблему кубиками
Как думаете есть ли способ сделать фикс текста когда это необходимо одним кодом?
Заранее спасибо!
 
Всем привет!
Есть код который декодит из Base64

C#:
Развернуть Свернуть Копировать
byte[] data = Convert.FromBase64String(project.Variables["acc_cook"].Value);
string decodedString = Encoding.UTF8.GetString(data);
return decodedString;

Обычно в конце закодированного текста всегда присутствует знак "=" (Пример: "aGVsbG8=")
Но в моих ситуациях иногда приходит текст без = в конце.
Онлайн конвертеры справляются с этим косяком и декодят нормально, но данный код вылетает с ошибкой "Недопустимая длина строки или массива знаков Base-64."

Решил данную проблему кубиками
Как думаете есть ли способ сделать фикс текста когда это необходимо одним кодом?
Заранее спасибо!
проверь регуляркой наличие = в конце, если нет , то добавь
 
  • Спасибо
Реакции: booms1 и revan
проверь регуляркой наличие = в конце, если нет , то добавь
Добрый день
В проекте парсится число подобного типа "20479397.07"
Так же во входных настройках проекта подаётся числа на которое нужно увеличить первое число типа "10.10"
Как их преобразовать в единый тип и сложить?
 
Доброго времени суток
Как на С# использовать несколько замен регулярками последовательно, то есть каждая следующая использует результат предыдущей
 
Доброго времени суток
Как на С# использовать несколько замен регулярками последовательно, то есть каждая следующая использует результат предыдущей
пример (хотя можно и покороче): https://zennolab.com/discussion/threads/reguljarka-dlja-chistki-teksta-ot-musora.49630/#post-372904
 
  • Спасибо
Реакции: Rafa
как сделать изображение черно-белое - только 2 цвета без градации?

C#:
Развернуть Свернуть Копировать
Bitmap bmp = new Bitmap(@"{-Project.Directory-}\index.jpg");
Image img = ToolStripRenderer.CreateDisabledImage(bmp);
img.Save(@"{-Project.Directory-}\result.jpg");
bmp.Dispose();
 
Всем привет, нужна помощь.
В каждой строке списка нужно отсортировать числа (элементы разделенные запятыми) по возрастанию.
Пример:

HTML:
Развернуть Свернуть Копировать
14а/1, 11, 9/2, 5, 13а, 13-б, 14-а
95/1, 54, 82а, 105, 89Б, 84
111-Н,111/О,103/13а13,111/К
103/18А,103,111-Л,134,103/17,102,142/5,111/М
132/А,130,144а,103/13,111/С,111-Ф
4/2,1/2,2 лин25,3лин22,4лин30,4/1,4лин66,1/1А
144/10,103/18,142уч.12,144Д,111/П,111/Р
142,217,103/12,111-У,144в, 144Ж,142,103/4
111/ Г/Д,111,107/109
1/7,4лин19, 50,1/4,3лин67, 1,81,3лин24,97,2лин37
67А,32,68А,64/12,73,83,1,91,14уч,25,
12,1а,2/3,2/2,1/3з,14,4,6,4/2И,13,1/3ж,
4/1,1/3,6а,1/3-В,6-6а,2Д,1А3,2,4/2,6/а,
1,1/2-А,11,1/1А,6/4,2А,1/1
 
Подскажите пожалуйста
как с помощью С# взять первое предложение из списка или переменной с удалением, и положить в другую переменную.
 
Держи @Rdenwer
C#:
Развернуть Свернуть Копировать
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;

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 class Extensions
  {
      public static T RemoveAndGet<T>(this IList<T> list, int index)
      {
          lock(list)
          {
              T value = list[index];
              list.RemoveAt(index);
              return value;
          }
      }
  }
}


C#:
Развернуть Свернуть Копировать
var lst = project.Lists["Список 1"];
var result = lst.RemoveAndGet(0);
return result;


48966
 

Вложения

  • 1579898177439.png
    1579898177439.png
    81,5 KB · Просмотры: 0
C#:
Развернуть Свернуть Копировать
string text_message = project.Variables["text_message"].Value;
string text_chto = "A";
string text_na_chto = "{A|A}";

text_message = Macros.TextProcessing.Replace(text_message, text_chto, text_na_chto, "Text", "All");

text_chto = "B";
text_na_chto = "{B|B}";
text_message = Macros.TextProcessing.Replace(text_message, text_chto, text_na_chto, "Text", "All");

//..........КУЧА ЗАМЕН......................

text_chto = "N";
text_na_chto = "{N|N}";
text_message = Macros.TextProcessing.Replace(text_message, text_chto, text_na_chto, "Text", "All");

project.Variables["text_message"].Value = Macros.TextProcessing.Spintax(text_message, false);   // Обработка текста "Spintax"



Как это более красиво и компактно организовать!? Может уже есть готовые решения для рандомизации текстовых сообщений!?

СПАСИБО!!!
 
Всем привет, нужна помощь.
Есть текст файлы в папке по номерам 1,2,3.. 10
Возможно ли их соединить в один файл последовательно?
 
C#:
Развернуть Свернуть Копировать
 var files = Directory.GetFiles(@"Путь").OrderBy(p => Regex.Match(Path.GetFileNameWithoutExtension(p), @"\d+").Value).ToList();
            var outputFilePath = "result.txt";
            using (var outputStream = File.Create(outputFilePath))
            {
                foreach (var file in files)
                {
                    using (var inputStream = File.OpenRead(file))
                    {
                        // Buffer size can be passed as the second argument.
                        inputStream.CopyTo(outputStream);
                    }
                }


            }
}
 
Знающие люди подсобите решением с#....
1) имеем список1 в нем строки
1111
2222
3333
2) имеем таблицу в которой столбец А тоже имеет эти значения
3) нужно прочитать из списка 11111 найти его в таблице в столбце А и при полном совпадении поставить напротив в столбце В +
4) Проделать это до тех пор пока не закончатся строки в списке
5) Буду премного благодарен за помощь!

наглядно что нужно
49434
 
Знающие люди подсобите решением с#....
1) имеем список1 в нем строки
1111
2222
3333
2) имеем таблицу в которой столбец А тоже имеет эти значения
3) нужно прочитать из списка 11111 найти его в таблице в столбце А и при полном совпадении поставить напротив в столбце В +
4) Проделать это до тех пор пока не закончатся строки в списке
5) Буду премного благодарен за помощь!

наглядно что нужно
Посмотреть вложение 49434
C#:
Развернуть Свернуть Копировать
IZennoTable table = project.Tables["Таблица 1"]; //указываем таблицу
IZennoList list =  project.Lists["Список 1"]; //указываем список
string column = "A"; //указываем наименование столбца где ищем
string column2 = "B"; //указываем наименование столбца куда пишем
string cell; // переменная под ячейки таблицы
string line; // пкеременная под строки списка

//Прогоняем весь список:
for (int i=0; i<list.Count; i++) {
    line = list[i];
    //Прогоняем весь столбец таблицы:
    for (int i2=0; i2<table.RowCount; i2++) {
        cell = table.GetCell(column, i2);
        if (cell==line) {
            // или заменните "cell==line" на "line.Contains(cell)" если надо будет не строгое совпадение, а частичное (типа строка содержит ячейку)
            table.SetCell(column2, i2, "+"); // пишем если нашли совпадение
        }   
    }
}

в зависимости от форматов подключаемой таблицы код может сбоить если у нас таблица строго на 1 колонку. То есть он не сможет создать новую ячейку справа для записи. Чтобы такого не было создавайте таблицу на 1 столбец шире (типа столбец с пустыми ячейками куда мы будем писать чтобы уже был).
П.С, На скрине в ТЗ
 
Последнее редактирование:
  • Спасибо
Реакции: сергос
orka13
Подскажите еще по такому коду(делает тоже самое только с 2 таблицами) код рабочий но появилась надобность в заменах.
изначальное число идет в таком виде 73.26.54 а сравниваемое без точек 732654
нужно добавить замену точек

C#:
Развернуть Свернуть Копировать
var table1 = project.Tables["Tab1"];
var table2 = project.Tables["Tab2"];

lock(SyncObjects.TableSyncer)
{
    // цикл по количеству строк в Tab2
    int iterCount1 = table2.RowCount;
    for (int i = 0; i < iterCount1; i++)
    {
        string сell1 = table2.GetCell(0, i).Trim();

        // цикл по количеству строк в Tab1
        int iterCount2 = table1.RowCount;
        for (int j = 0; j < iterCount2; j++)
        {
            string cell2 = table1.GetCell(0, j).Trim();
            if (cell2 == сell1)
            {
                table1.SetCell(1, j, table2.GetCell(1, i).Trim());
            }
        }
    }
}
 
Добавить в нужное место что то типа:
C#:
Развернуть Свернуть Копировать
cell = cell.Replace(".", "");
 
  • Спасибо
Реакции: сергос
подскажите пожалуйста- количество миллисекунд, прошедших с 01.01.1970 00:00:00 по UTC. (1581334266366-сегодня было столько).Как это реализовать?
нашел -может кому пригодится- https://zennolab.com/discussion/threads/kak-poluchit-vremja.12064/
 
Последнее редактирование:
Как преобразовать число (переменную) к типу double, что бы осталось разделение дробной части и знаки после , ?
 
только если у вас в переменной значените записано с точкой , с запятой выдаст ошибку нужно сделать замену на точку.
C#:
Развернуть Свернуть Копировать
double item = double.Parse(project.Variables["double"].Value);
вариант с заменой точки
C#:
Развернуть Свернуть Копировать
double item = double.Parse(project.Variables["double"].Value.Replace(",",".");
 
Последнее редактирование:
  • Спасибо
Реакции: booms1
только если у вас в переменной значените записано с точкой , с запятой выдаст ошибку нужно сделать замену на точку.
C#:
Развернуть Свернуть Копировать
double item = double.Pars(project.Variables["double"].Value);
вариант с заменой точки
C#:
Развернуть Свернуть Копировать
double item = double.Pars(project.Variables["double"].Value.Replace(",",".");
49955
 
поправил код в посте выше Parse а не Pars
Я правильно понимаю, что в переменной должна быть . ? с точкой не работает, а вот если запятая, всё отрабатывает, но из 611,00 получается просто 611
 
Все отрабатывает верно
вы внимательно просмотрите сниппеты

LO9FPRJ.png
 
Насчёт конвертирования в double. Не забывайте что у каждого свой разделитель. Где то точка, где то точка с запятой
C#:
Развернуть Свернуть Копировать
var res = double.Parse(project.Variables["double"].Value, CultureInfo.InvariantCulture);
Данному сниппету без разницы)
 
Салют!
Ребят помогите с кодом.
Нужно что бы поток поместил в глобальную переменную время unixtime

C#:
Развернуть Свернуть Копировать
project.GlobalVariables["MyNamespase", "time_counter"]

+ как скопировать из локальной переменной потока в глобальную?
 
Привет. Нужны математические действия с числами, в вики есть сипнет
C#:
Развернуть Свернуть Копировать
 //преобразование значений переменных проекта в целые числа и их передача в переменные сниппета
   int a = int.Parse(project.Variables["var1"].Value);
   int b = int.Parse(project.Variables["var2"].Value);

   // вычисление суммы и передача результата вычисления в переменную проекта
   return a - b;

Цель будет брать последний столбец
1582560699671.png
и сравнивать с новыми, которые будут значение и подписывать или плюс или минус.
1582560818285.png
Если первая переменная имеет 30, вторая 27 мы получаем ответ чисто 3 без плюса
и то же самое на оборот, только получается -3 с минусом.
1582560945855.png
Если все две переменные по 30, то получаем ноль.
Как сделать, чтобы получать, +3 или -3, а если все равно, не получить ни чего?
 
Здравствуйте помогите сделать всё тоже самое только С# код, и если можно подпишите строки кода за что отвечают
 

Вложения

  • Аннотация 2020-02-25 150139.png
    Аннотация 2020-02-25 150139.png
    20,5 KB · Просмотры: 12
  • Спасибо
Реакции: Radzhab
подскажите плз, простая задача из строки разделенная запятыми, нужно рандомно взять одно слово/словосочетание например: слово, второе слово, три, четыре пять шесть, один.
 

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